Присвоение this переменной в Javascript

Я использую объектно-ориентированный подход с 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. Это лучший способ выполнить эту задачу или даже широко приемлемый? Может ли кто-нибудь предложить лучшее решение?

Спасибо вам всем.

11
задан Matt Mancuso 8 August 2012 в 05:08
поделиться