【发布时间】:2023-03-28 19:05:01
【问题描述】:
我知道将方法直接分配给类的原型是一种很好的做法,这样就不会在每次调用函数时都重新定义它们。
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.
}
这看起来很笨拙,可能不是调用此函数的最佳方式。 还有其他方法还是我错过了什么?
【问题讨论】:
-
顺便说一句,我的具体情况是我正在尝试创建一个构造函数,它接受一个选项参数并通过使用数据调用实例方法来处理选项。
标签: javascript oop class constructor