我正在尝试使用原型(prototype)向对象添加功能,我以为我理解了整个概念,所以这就是我所做的:
function ImgContainer() {
var current_image = 1;
}
ImgContainer.prototype = {
init: function() {
//initialize
},
scrollLeft: function(){
//scroll left
}
}
var imgContainer = new ImgContainer();
我假设我可以在init和scrollLeft中都访问current_image,但是我遇到了Uncaught ReferenceError:未定义current_image的问题。
如何使变量在init和scrollLeft函数中都可以访问?
最佳答案
您可以将其添加为实例化对象的属性:
function ImgContainer() {
this.current_image = 1;
}
然后在函数中访问属性:
ImgContainer.prototype = {
init: function() {
alert(this.current_image);
},
scrollLeft: function(){
//scroll left
}
}
您仍然可以在方法内部使用短期变量来临时存储内容,以完成该方法的工作。但是,您将对象的状态存储在其属性中。