Javascript 如何在knockout js中检查对象是否具有任何属性

Javascript 如何在knockout js中检查对象是否具有任何属性,javascript,object,knockout.js,Javascript,Object,Knockout.js,如何检查一个可观察对象是否有属性存在于敲除js中。 我试过使用hasOwnProperty,但结果总是错误的 我的代码如下: 点击这里 检查控制台 var ViewModel=函数{ var self=这个; this.arrayVal=ko.observable{}; this.setObject=函数{/*我在这里设置了属性*/ 赛尔夫·阿雷瓦尔{ 身份证号码:10 }; }; self.init=函数{ console.logself.arrayVal; console.logself.a

如何检查一个可观察对象是否有属性存在于敲除js中。 我试过使用hasOwnProperty,但结果总是错误的

我的代码如下:

点击这里 检查控制台 var ViewModel=函数{ var self=这个; this.arrayVal=ko.observable{}; this.setObject=函数{/*我在这里设置了属性*/ 赛尔夫·阿雷瓦尔{ 身份证号码:10 }; }; self.init=函数{ console.logself.arrayVal; console.logself.arrayVal.hasOwnProperty'id';/*在setObject之后第二次单击时,我期望trut,但它返回false*/ } self.init; }; ko.applybindingsnewviewmodel;
您需要获取arrayVal observable中的值:

console.log(self.arrayVal().hasOwnProperty('id'));
因此,observable本身具有方法hasOwnProperty,但没有属性id

self.arrayVal.hasOwnProperty('id');    // false, 'id' doesn't exist on the observable


您需要获取arrayVal observable中的值:

console.log(self.arrayVal().hasOwnProperty('id'));
因此,observable本身具有方法hasOwnProperty,但没有属性id

self.arrayVal.hasOwnProperty('id');    // false, 'id' doesn't exist on the observable


相反,observable确实有hasOwnProperty方法,但它没有id属性,因此它返回false。非常正确,我可能是被自己绊倒了,想尽快发布答案。我编辑了答案以反映这一点。谢谢。不必急着这么做-最好的答案应该浮到顶部-昨天看到一个问题,第五个或第六个答案在第一个答案发布后7或8分钟是最正确的,并且获得了大量的选票:相反,observable确实有hasOwnProperty方法,但它没有id属性,因此返回false。非常正确,我可能是被自己绊倒了,想尽快把答案贴出来。我编辑了答案以反映这一点。谢谢。不必急着这么做-最好的答案应该排在前面-昨天看到一个问题,第五或第六个答案在第一个答案后7或8分钟发布,是最正确的,并且获得了大量的选票: