Function.__proto__===Function.prototype有点不理解,求大神解惑
原型对象是构造函数的prototype属性,是所有实例化对象共享属性和方法的原型对象。
实例化对象通过new构造函数得到,都继承了原型对象的属性和方法。
原型对象中有个隐式的constructor,指向了构造函数本身。
`__proto__` 的读取器(getter)暴露了一个对象的内部 [[Prototype]] 。对于使用对象字面量创建的对象,这个值是 `Object.prototype`。对于使用数组字面量创建的对象,这个值是 `Array.prototype`。对于functions,这个值是`Function.prototype`。
8 回答4.5k 阅读✓ 已解决
6 回答3k 阅读✓ 已解决
5 回答2.6k 阅读✓ 已解决
5 回答6.2k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答2.4k 阅读
4 回答2.7k 阅读✓ 已解决
因为
Function
本身也是一个Function
对象,也就是var Function = new Function()
,这看起来有点鸡和蛋的意思,不过如果先给你一个蛋,那必然就是先有蛋后有鸡了。所以如果先给你一个Function
对象的原形[[Prototype]]
,那么就可以通过一个函数构建出Function
的实例了,这个函数就是Function
本身。