Javascript中的每个函数都是一个对象。
function a() {
this.x = function() { console.log("x"); }
}
这里的 "a" 是一个函数,是一个对象,对吗?
var b = Object.create(a);
b.x(); //does not work!!
如果我们写成以下代码,那么以上的代码将能够正常工作 -
var b = Object.create(new a())
那么这是否意味着只有函数的实例才是对象?而不是函数本身?
this
不是那个对象。它是由调用者设置的上下文。 - Frédéric Hamidia
是否有属性x
,那么继承的变量b
也不会有它。 - Grundythis
不是对a
的引用,在那段无法运行的代码中,您从未实际调用该函数,因此其中的代码尚未运行。 - nnnnnn