JavaScript 里 in 运算符继承属性的问题
var o = new Object();
o.OwnProperty('toString') // false
'toString' in o // true
里这句
'toString' in o
这句为何会返回 true?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
obj.hasOwnProperty判断某属性是“自身属性”还是“继承自原型对象的属性”;
in操作符判断的是该对象的某属性是否存在且可枚举;
我觉得你不应该奇怪
in
,反而应该奇怪hasOwnPropery
吧。不信你运行o.hasOwnProperty('hasOwnProperty')
试试。关于这个MDN上不是已经讲的很详细了么:所以你可以这么理解:
hasOwnProperty
是检查自己真正拥有的属性,不检查继承的属性;而in
是只要在对象内的属性都会检查。这个
toString
方法是从Object
对象继承来的,@merb_tu 说的对