【发布时间】:2015-02-20 01:10:01
【问题描述】:
我经常使用主 JavaScript 构造函数的模式,并在其原型对象中添加方法,以便用户可以直观地调用它们,例如:
function Slideshow(options) {
this.options = options
this.slideshow = $('#slideshow')
//more variables here
}
Slideshow.method1 = function () {
this.slideshow.addClass('test') // do something with slideshow variable
};
Slideshow.method2 = function () {
// another method
};
这种模式真正困扰我的一件事是,为了使变量可以在所有原型方法中访问,我必须在构造函数中的每个变量前面添加“this”。这是一个很大的痛苦,我不禁想到有一种更优雅的方式来做到这一点。
如果我放弃使用原型对象而只是将方法添加为实例方法,我知道我无法解决这个问题,但我喜欢效率吗?和这种模式的自我封装性质。对于更好的模式还有其他建议吗?谢谢!
【问题讨论】:
-
请查看我的编辑,因为它们遵循 JavaScript 最佳实践。请大写您的构造函数。
-
另外,不要用另一个对象替换原型,你最终会覆盖需要保留的东西。
标签: javascript prototype