JavaScript中是否有一种方法可以从返回函数的构造函数继承?例如:
var A = function() {
return function(input) {
// do stuff
};
};
var B = function() {};
B.prototype = new A();
var b = new B();
由于
答案 0 :(得分:1)
通过从构造函数返回函数,您不是创建A
的实例,而是创建函数的实例。因此,继承将无效。
var A = function() { return function(input) {}; };
var a = new A();
>>> typeof a;
"function"
var A = function() {};
var a = new A();
>>> typeof a;
"object"
如果您需要B
从A
继承返回的函数,则应将其设置为A
的方法,无论是在本地还是在原型链中,并以此方式传递
var A = function() {
this.method = function(input) {}
};
var B = function() {}
B.prototype = new A();
var b = new B();
>>> b.method
'function(input) { }'