您的位置:首页 > 其它

面向对象中的原型链

2017-07-25 14:41 127 查看
1.hasOwnProperty:看是不是对象自身的属性.

2.constructor:查看对象的构造函数

每个原型都会自动添加constructor属性;

For in的时候有些属性是找不到的;

避免修改constructor属性。

3.instanceof:对象与构造函数在原型链是是否有关系。

判断是否为数组的方法:

var  arry=[];
Object.prototype.toString.call(arry)=='[object Array]';//true


4.拷贝继承:子类可以父类的一些功能,但不能影响父类的功能。通用型的,有new无new都可以。

<1>属性的继承:调用父类的构造函数 call

Createperson.call(this,name,sex);//name,sex是继承父类的属性


<2>方法的继承:拷贝继承,不是引用的方式,jQuery也是采用拷贝继承(extend),可以封装成一个函数extend.

function extend(obj1,obj2)
{
for(var attr in obj2){
obj1[attr]=obj2[attr];
}
}
extend(子函数.prototype,父函数.prototype);


5.类式继承:适用于new 构造函数

var F= function(){};
F.prototype=父类.prototype;
子类.prototype=new F();
子类.prototype.constructor=子类;


6.原型继承:无new 对象

var a={name:"wang"};
var b=cloneObj(a);
alert(b.name);
function cloneObj(obj){
var  F=function {};
F.prototype=obj;
return new F();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  面向对象 原型链