求助,JavaScript原型链 一个问题

Function.prototype.color = 'F-color';
var func = function(){};
var foo = new func();

此时输入 foo.color 为何是undefined,找不到不是应该顺着原型链往上找吗?
我的理解是:foo.color找不到=>找func.prototype.color,找不到 =>找Function.prototype.color.

把我难住了,这块我理解的不对吗

最佳答案

new func构造了一个实例,然而这个实例并不是Function的实例啊...

原型链是通过__proto__属性不断向上查找属性,它不是prototype,二者有明显区别。
实例化对象的原型指向构造函数的prototype。

就你的例子而言 func继承的是Function.prototype而不是Function;
foo继承的是func.prototype而不是func.