var F = function() {};
Object.prototype.a = function() {
console.log("a()");
};
Function.prototype.b = function() {
console.log("b()");
};
var f = new F();
F.a();//a()
F.b();//b()
f.a();//a()
f.b();//Uncaught TypeError: f.b is not a function
不明白这里F.a()和f.a()有什么区别么?
F 是一个函数
F.__proto__ == Function.prototype
而
Function.prototype.__proto__ == Object.prototype
所以
F.__proto__.__proto__ == Object.prototype
a
在F.__proto__.__proto__
上 (Object.prototype
)b
在F.__proto__
上 (Funcion.prototype
)f 并不是
f.__proto__ == F.prototype
而
F.prototype
是一个的Object()
。f.__proto__.__proto__ == F.prototype.__proto__ == Object.prototype
a
在f.__proto__.__proto__
上 (Object.prototype
)b
并找不到,于是是undefined