JavaScript检测实例属性, 原型属性
0.前提
JavaScript对象的属性分为两种存在形态.一种是存在实例中,另一是存在原型对象中.
根据上述,检测属性的时候会出现4种情况
既不存在实例中,也不存在原型对象中
存在实例中,不存在原型对象中
不存在实例中,存在原型对象中
既存在实例中,也存在原型对象中
1.hasOwnPrototype()
hasOwnPrototype()接受一个字符串格式的属性名称,如果实例本身存在该属性(情况2/情况4),返回true.否则,返回false(情况1/情况3).
functinoPerson(){}
Person.prototype.name='apple';
varperson1=newPerson();
varperson2=newPerson();
person1.name='banana';
console.log(person1.hasOwnPrototype(name)); //true
console.log(person2.hasOwnPrototype(name)); //false
2.in操作符
in操作符无论属性是存在实例本身中,还是原型对象中,就会返回true(情况2/情况3/情况4);否则,返回false(情况1).
console.log('name'inperson1); //true
console.log('name'inperson2); //true
3.检测存在原型的属性
结合in操作符和hasOwnProperty()就可以自定义函数来检测原型中是否存在给定的属性.
functionhasPrototypeProperty(object,name){
return!object.hasOwnPrototype(name)&&(nameinobject);
}
console.log(hasPrototypeProperty(person1,'name')); //false
console.log(hasPrototypeProperty(person2,'name')); //true
原型中存在给定属性,返回true(情况3).否则返回false(情况1/情况2/情况4).
以上就是本文的全部内容了,希望大家能够喜欢
热门推荐
10 小红书平安祝福语简短
11 生日祝福语大全女孩简短
12 收生日红包祝福语 简短
13 领证幽默祝福语简短
14 法考面试祝福语简短
15 老哥出门祝福语简短语
16 送灯祝福语简短独特
17 幼儿狗年祝福语大全简短
18 好听的元旦简短祝福语