我知道将方法直接分配给类的原型是一种很好的做法,这样每次调用函数时就不会重新定义它们。
var A = function () {
this.prop = "A property";
}
A.prototype.method = function () {
return "A method";
}
假设我想在构造函数中调用以这种方式定义的方法。这可能吗?
var A = function (options) {
initialize(options); // initialize is undefined.
}
A.prototype.initialize = function (options) {
// do something with options.
}
在构造函数中创建存根方法不起作用,因为它被调用而不是原型的函数版本。我能够让它工作的唯一方法是通过括号语法引用该函数,this["initialize"]()
这似乎很不雅。
var A = function (options) {
this["initialize"](options); // function isn't defined yet but will be soon!
}
A.prototype.initialize = function (options) {
// do something with options.
}
这看起来很笨拙,可能不是调用此函数的最佳方式。还有其他方法还是我错过了什么?