Open kujian opened 5 years ago
person.__proto__ === Person.prototype
person.constructor === Person.prototype.constructor === Person === person.__proto__.constructor
1、所有的对象 (实例、构造函数、原型) 都有隐式原型 (proto) 2、所有的构造函数都有显式原型 (prototype) 3、实例的隐式原型指向其构造函数的显式原型 4、构造函数的隐式原型指向 Function.prototype 5、构造函数显式原型的隐式原型指向 Object.prototype Object.prototype 是特殊的存在,它的隐式原型指向 null
函数有隐式原型吗?好像没有吧
函数有隐式原型吗?好像没有吧
对象都有隐式原型,函数属于对象,所以函数也有隐式原型
每个实例对象都有原型,每个构造函数也都能创建实例,将构造函数f1的原型指向构造函数f2的实例,那么构造函数f1的实例对象就能访问f2的原型,以此类推,就构成了原型链 ps: 面试组织语言好痛苦
这种原型的用途是什么呢。。。
上图:
实际例子:
prototype
是函数才会有的属性, 而__proto__
是几乎所有对象都有的属性总结:
__proto__
,可称为隐式原型, 指向原构造函数的原型对象。prototype
),这个属性是一个指针,指向一个对象,也叫原型对象(包含所有实例共享的属性和方法)。constructor
属性,这个属性包含了一个指针,指向原关联的构造函数参考链接: