0。前提
Javascript对象的属性分为两种现有形式。一个在实例中,另一个在原型对象中。
根据上述情况,在检测到财产时,有4起案件。
既没有实例也没有原型对象。
在现有的实例中,对象中没有原型。
没有原型对象存在的实例。
在现有的实例中,也有原型对象。
1.hasownprototype()
HasOwnPrototype()接受一个字符串格式属性名称。如果实例本身存在,则返回属性(情况2 /情况4)。否则,它返回false(情况1 /案例3)。(真的。)
复制代码代码如下所示:
Functino (Person) {}
person.prototype.name = 'apple;
VaR甲=新的人();
var 2 =新的人();
person1.name = 'banana;
console.log(person1.hasownprototype(名称) / /真实);
console.log(person2.hasownprototype(名字)); / /假
2.in算子
不管实例本身还是原型对象中的属性是否存在,操作符都返回true,否则返回false(情况1)2(3)。
复制代码代码如下所示:
console.log('name'in甲); / /真的
console.log('name'in 2); / /真的
三.检测原型存在的属性
结合运营商和hasownproperty(),可以定义一个函数来检测是否一个给定的属性存在于一个原型。
复制代码代码如下所示:
功能hasprototypeproperty(对象的名字){
返回!Object.hasOwnPrototype(名字)(名字对象);
}
console.log(hasprototypeproperty(甲,'name')); / /假
console.log(hasprototypeproperty(2,'name') / /真实);
给定的属性存在于原型中,并返回true(情况3)。否则,返回false(案例1,案例2,案例4)。
这是本文的全部内容,希望大家能喜欢。