5

基本概念

proto

每个JS对象一定对应一个原型对象,并从原型对象继承属性和方法。
对象的__proto__属性的值就是它所对应的原型对象

prototype

不像每个对象都有__proto__属性来标志自己所继承的原型,只有函数才有prototype属性。

示例

var a = "zuckjet";
console.log(a.prototype);
console.log(a.__proto__);
console.log(String.prototype);

var b = [1,2,3];
console.log(b.__proto__);
console.log(Array.prototype);

function test() {}
var c = new test();
console.log(c.__proto__);
console.log(test.prototype);
console.log(test.__proto__);
console.log(Function.prototype);

输出结果如下:

clipboard.png

补充

Function本身就是函数,Function.__proto__是标准的内置对象Function.prototype。

Function.prototype.__proto__是标准的内置对象Object.prototype。

Object.prototype.__proto__ === null


Zuckjet
437 声望657 粉丝

学如逆水行舟,不进则退。