核心:对象.__proto__ === 函数.prototype
1.先列举几个例子
var obj = {}
obj.__proto__ === Object.prototype //true
var f = function(){}
f.__proto__ === Function.prototype //true
f.__proto__.__proto__ === Obiect.prototype //true
var arr = []
arr.__proto__ === Array.prototype //true
arr.__proto__.proto__ === Object.prototype //true
Array.__proto__ === Function.prototype //true
-
prototype
是函数的原型对象,及prototype
是一个对象,它会被对应的__proto__
引用。 - 自己的
__proto__
引用的就是构造你的那个构造函数的prototype
- 所有构造函数的原型链最后都会引用
Object
的原型,及Object.prototype.而Object.prototype.__proto__ === null
2.几道关于原型的题
1.Object.__proto__ === ???
首先Object是构造函数,类型为函数,那么,函数由什么构造出来的呢? 很明显,是Function,所以Object.__proto__ === Function.prototype
2.Function.__proto__ === ???
首先Function类型为构造函数,它还是一个函数,函数是由Function构造出来的,所以Function.__proto__ === Function.prototype
var temp = new myFunction()
temp.__proto__ === ???
首先temp
是一个函数,它是由myFunction
构造出来的,所以temp.__proto__ === myFunction.prototype
4.特例
Object.prototype.__proto__ === null
网友评论