function Foo(){};
var foo = new Foo();
console.log(foo.__proto__)
console.log(foo.hasOwnProperty('__proto__'))
foo明明打印出它的隐式原型属性,为什么foo.hasOwnProperty('__proto__')却返回false
function Foo(){};
var foo = new Foo();
console.log(foo.__proto__)
console.log(foo.hasOwnProperty('__proto__'))
foo明明打印出它的隐式原型属性,为什么foo.hasOwnProperty('__proto__')却返回false
js里有一句话:万物皆对象
也就是说所有的变量、类、方法等都直接或间接继承自Object(除了null和undefined)
比如:
{} => Object
function => Function => Object
'xxx' => String => Object
123 => Number => Object
[] => Array => Object
所以所有的对象都具有__proto__属性,__proto__属性的值也是一个对象,所以__proto__属性的值也具有__proto__属性
hasOwnProperty方法是获取目标对象的__proto__对象上是否存在对应的key,当然不包括隐式的key
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答5.2k 阅读✓ 已解决
1 回答3.4k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
因为