原型和原型链
显式原型 prototype
隐式原型 proto
prototype 是函数的一个属性 创建函数时会默认添加prototype这个属性
prototype 是一个对象
__proto__是对象上的属性 指向构造函数的prototype
1 | function test (name) { |
总结:实例化对象的__proto__指向其构造函数的prototype,
构造函数的prototype.__proto__指向其对象的构造函数Object.prototype
构造函数Object.prototype.__proto 指向null
当寻找一个对象属性时,先从对象自身查找,直到找到null
proto 读作“dunder proto”,“double underscore proto”的缩写。并且它前后两边 分别是 两个 “_”(下划线)。
假设有一个对象 obj 其是由构造函数 function test(name) { this.name=name } 使用关键字new出来 这时称这个对象为实例化对象obj
其原型链如下:
obj.proto–>test.prototype.proto(obj对象的构造函数)–> Object.prototype.__proto –> null