我是Javascript的新手并试图学习这门语言。经过几个帖子后,我发现为了检查对象的特定属性,我们可以广泛使用以下方法之一。
1]使用hasOwnProperty
Object.hasOwnProperty(" propertyName的&#34)
但是,这不会检查从Object的原型链继承的属性。
2]遍历所有属性并检查属性是否存在。
for(propertyName in myObject) {
// Check if "propertyName" is the particular property you want.
}
使用此功能,您也可以检查原型链中对象的属性。
我的问题是:是否有一种方法而不是2]我可以检查" propertyName"是Object的原型链中的属性?类似于" hasOwnProperty"没有循环?
答案 0 :(得分:5)
你可以直接用in
检查属性,它也会检查原型链,就像这样
if ('propertyName' in myObject)
一个例子
var obj = function() {};
obj.prototype.test = function() {};
var new_obj = new obj();
console.log( 'test' in new_obj ); // true
console.log( 'test22222' in new_obj ); // false
console.log( new_obj.hasOwnProperty('test') ); // false
答案 1 :(得分:0)
Reflect.has 可以为你工作
console.log(Reflect.has({}, 'toString')); // true