我最近看了一个指南,想更好地理解 hasOwnProperty 的概念。
根据 Mozilla:
“hasOwnProperty() 方法返回一个布尔值,指示对象是否具有指定的属性作为自己的(不是继承的)属性。”
我创建了一个对象
var test = {yes:function(){}}
然后做了
test.hasOwnProperty('toString')
它返回错误。这是因为 toString 是我没有在测试中创建的方法,对吗?
但是如果我将 hasOwnProperty 记录到一个数组并传递长度,那么
var arr1 = new Array
arr.hasOwnProperty('length') //appears to return true
它返回 true,但我从未声明长度。
我认为 hasOwnProperty 仅适用于未继承的属性-
那么为什么当数组对象继承长度属性时,在数组上使用 hasownprop('length') 会返回 true,
但
var test = {yes:function(){}}
test.hasOwnProperty('toString') //false
为什么^这会返回假?toString 是对象原型上的方法,当我将它登录到 Google Chrome 控制台时看到它