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();
}