这里有几个答案如何检查对象中是否存在属性。
我一直在用
if(myObj.hasOwnProperty('propName'))
但我想知道是否有什么区别
if('propName' in myObj){
最佳答案
它们几乎是相等的,不同的是hasOwnProperty
不检查原型(prototype)链,而in
则检查。
一个例子
var test = function() {}
test.prototype.newProp = function() {}
var instance = new test();
instance.hasOwnProperty('newProp'); // false
'newProp' in instance // true
如上所述,Object.hasOwnProperty
仅返回“自己的属性”,即直接添加的属性,而不是添加到原型(prototype)
的属性>.
关于JavaScript : Check if object has properties,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22728508/