假设我有一个像这样的“类”(我正在使用 RequireJS ):
myClass.js
define(function() {
return function() {
this.color = 0;
this.setColor = function(color) {
this.color = color;
}
};
});
如果我想启用继承,我可以这样做:
// later, in another file...
myClass.prototype = new superclass();
但是为什么我不能直接在函数声明中定义原型(prototype)呢?
define(['superclass'], function(superclass) {
return function() {
this.color = 0;
this.setColor = function(color) {
this.color = color;
}
this.prototype = new superclass;
};
});
如果我运行此命令,myClass
不会继承任何父类(super class)
的方法。为什么?
提前致谢。
最佳答案
你为什么不直接:
define(['superclass'], function(superclass) {
var myClass = function() {
this.color = 0;
this.setColor = function(color) {
this.color = color;
}
};
myClass.prototype = new superclass;
return myClass;
});
在返回定义之前你可以做任何你想做的事情。
关于javascript - 函数声明中指定的基于原型(prototype)的继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17900496/