标签:函数 sof top 有一个 soft imp call UNC size
每一个函数在创建之后都会拥有一个名为prototype的属性,这个属性指向函数的原型对象。
隐式原型指向创建这个对象的构造函数(constructor)的prototype
如果在obj中找不到,那么就会沿着__proto__依次查找。
实例:
声明构造函数A,给A的原型对象添加一个属性和一个方法,
用函数A创建一个对象a:
1 A.prototype.name = "Jack";
2 A.prototype.say = function () {
3 console.log("hello");
4 }
6 function A() {
7 8 }
9 var a = new A( );
我们来观察一波控制台的输出。。。
首先,对象a的__proto__(隐式原型)指向A的prototype(原型对象)
而a.__proto__.__proto__又等价于下面那一大串东西,其实也等价于所有对象的祖先的原型对象——Object.prototype
而在原型链的定义中,Object.prototype即原型链的终点,再往上就没有了。
而构造函数A的prototype,也就是对象a的__proto__所指向的地方
隐式原型指向构造该对象的构造函数的原型(A.__proto__ === A.constructor.prototype)。
因为function是特殊的对象,"Function.prototype"
,即所有函数的原型,通常函数都可以认为是通过new Function制造出来的。
换句话说,Function.prototype
上面承载了用于继承给所有函数的那些属性,例如:call、bind、apply等。
部分内容参考自:https://www.zhihu.com/question/34183746/answer/59043879
Javascript之 __proto__ 与 prototype
标签:函数 sof top 有一个 soft imp call UNC size
原文地址:https://www.cnblogs.com/abcdecsf/p/12432263.html