您的位置:首页 > Web前端 > JavaScript

js prototype 和 hasOwnProperty的几个例子

2013-12-24 21:03 363 查看
ps. prototype的定义略。hasOwnProperty定义如下:




例1:
var obj = {id: 3};
obj.prototype.set = function(){ // 报错,因为obj是‘普通对象’
this.name = 'wy';
};
alert(obj.hasOwnProperty('id'));


例2:
var obj = {id: 3};
obj.prototype.name = 'yw'; // 报错,因为obj是‘普通’


例3:
var Obj = function(){
this.id = 3;
};
alert(Obj.hasOwnProperty('id')); // false,因为Obj是"函数对象",不是"普通对象"


例4:
var Obj = function(){
this.id = 3;
};
Obj.prototype.set = function(){
this.name = 'wy';
};
var o = new Obj();
alert(o.hasOwnProperty('id')); // true
alert(o.hasOwnProperty('name')); // false


例5:
var Obj = function(){
this.id = 3;
};
Obj.prototype.set = function(){
this.name = 'wy';
};
var o = new Obj();
o.set(); // 注意
alert(o.hasOwnProperty('id')); // true
alert(o.hasOwnProperty('name')); // 注意:true


例6:
var Obj = function(){
this.id = 3;
};
Obj.prototype.name = 'wy';
var o = new Obj();
alert(o.hasOwnProperty('name')); // false


例7:
var Obj = function(){
this.id = 3;
};
Obj.prototype.name = 'wy';
Obj.prototype.set = function(){
Obj.prototype.name = 'hello'; // 赋值
};
var o = new Obj();
o.set();
alert(o.hasOwnProperty('name')); // false


例8:
var Obj = function(){
this.id = 3;
};
var o = new obj();
o.name = 'wy';
alert(o.hasOwnProperty('name')); // true,直接给对象赋值


例9:
var Obj = function(){
this.id = 3;
};
Obj.prototype.name = 'wy';
var o = new Obj();
alert(Obj.prototype.hasOwnProperty('name')); // true,直接访问原型链


例10:
var Obj = function(){
this.id = 3;
};
Obj.prototype.set = function(na){
this.name = na;
};
var o1 = new Obj();
o1.set('wy');
var o2 = new Obj();
o2.set('lh');
alert(o1.name); // wy
alert(o2.name); // lh


参考mdn:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息