在Javascript中将"this"赋给变量

Mat*_*uso 11 javascript this

我使用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
  }
}
Run Code Online (Sandbox Code Playgroud)

我发现允许func2访问的唯一方法this.var1是将另一个变量分配给this:var c = this.这是开展这项任务的最佳方式,还是广泛接受的?任何人都能提供更好的解决方案吗?

谢谢你们.

Sco*_*tty 9

是的,这是公认的做法.请参阅有关范围或此问题的文章.

阅读关闭也可能有所帮助.