JavaScript 里 in 运算符继承属性的问题

varo=newObject();
o.OwnProperty('toString')//false
'toString'ino//true
里这句
'toString'ino
这句为何会返回true?
翻阅古今
浏览 329回答 2
2回答

HUWWW

obj.hasOwnProperty判断某属性是“自身属性”还是“继承自原型对象的属性”;in操作符判断的是该对象的某属性是否存在且可枚举;

慕运维8079593

我觉得你不应该奇怪in,反而应该奇怪hasOwnPropery吧。不信你运行o.hasOwnProperty('hasOwnProperty')试试。关于这个MDN上不是已经讲的很详细了么:EveryobjectdescendedfromObjectinheritsthehasOwnPropertymethod.Thismethodcanbeusedtodeterminewhetheranobjecthasthespecifiedpropertyasadirectpropertyofthatobject;unliketheinoperator,thismethoddoesnotcheckdowntheobject'sprototypechain.Object.prototype.hasOwnProperty所以你可以这么理解:hasOwnProperty是检查自己真正拥有的属性,不检查继承的属性;而in是只要在对象内的属性都会检查。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript