原型检测方式

2017-08-31  本文已影响19人  恍若如梦hzpeng

用来判断一个对象是否指向了该构造函数的原型对象,如果是返回true,不是则返回false。
原型对象.isPrototypeOf(实例化对象)

function Box(){};
Box.prototype.name = "小明";
Box.prototype.age = "20";
var b = new Box();
b.name = "jack";
Box.prototype.isPrototypeOf(b);  //返回true

用来判断一个属性是否在实例中,如果在实例中返回true,如果不在返回false。可以和isprototypeOf()一起使用判断属性是否只存在在原型中。
实例对象.hasOwnProperty("属性")

function Box(){};
Box.prototype.name = "小明";
Box.prototype.age = "20";
var b = new Box();
b.name = "jack";
b.hasOwnProperty("name");  //返回true
b.hasOwnProperty("age") ;  //返回false

用来判断一个属性是否存在(在原型里或实例里),如果存在返回true,如果不存在返回false。
"属性名" in 实例化对象

function Box(){};
Box.prototype.name = "小明";
Box.prototype.age = "20";
var b = new Box();
b.name = "jack";
alert("name" in b);  //true
alert("age" in b); //true

删除属性,只能删除实例里面的属性或方法,不能删除原型里的属性或方法
delete b.name

上一篇 下一篇

猜你喜欢

热点阅读