我正在使用面向对象的Javascript编程方法,原因有两个。第一,它可以帮助我学习;第二,以防我的代码需要分发。
我已经将函数赋值给变量并使用this
来声明公共变量。然而,我在使用this
时遇到了问题。当我处于“私有”函数时,this
指向不同的作用域,我无法访问this
下的变量。以下是我的说明。
var ClassObject = function() {
this.var1 = 'Hello';
var var2 = 786;
this.func1 = function() {
alert(this.var1); // Alerts Hello
alert(var2); // Alerts 786
}
var func2 = function() {
alert(this.var1); // Alerts undefined
alert(var2); // Alerts 786
}
}
我找到的唯一一种让func2
可以访问this.var1
的方法是创建一个变量并将其赋值为this
:var c = this
。这是完成此任务的最佳方式吗,甚至被广泛接受吗?有人能提供更好的解决方案吗?
谢谢大家。
self
被用于此目的:var self = this;
- Casey Chu