2012-04-04 2 views
0

Я начал использовать Base.js для наследования класса. В Base.js класс должен быть объектом, но не работает.Как вызвать ключ объекта внутри объекта без «this»

Это создает проблему:

​var obj = { 
    variable:true, 
     func:function(){ 
      console.log(variable); 
     } 
    }; 

    obj.func();​ 

Этот код броска ошибки: "Uncaught ReferenceError: переменная не определена". Это происходит потому, что «console.log (variable);» не имеет «этого».

Но я не хочу писать «это» во ВСЕХ функциях в моем большом классе.

Есть ли способ обойти это?

+2

Написание 'this.whatever' вместо' what' is ** точно **, что вы должны делать в JavaScript. То же относится, например. в Python и LUA. На самом деле это хорошо, поскольку вы сразу видите, что вы получаете доступ к переменной-члену или локальному/глобальному. Пожалуйста, не ищите способы извратить язык только потому, что вы «не хотите» делать то, что все остальные делают на этом языке. – ThiefMaster

ответ

0

Вы всегда можете написать одну строку дополнительного кода: var ins_obj = this; но вам все равно придется поместить ins_obj.variable в console.log. Любой язык, который я использовал, делает это так. this.variable - способ вызова переменных, функций внутри объекта.

+1

«Любой язык, который я использовал, делает это так: this.variable - способ вызова переменных, функций внутри объекта». Да и это нормально. Но я использую объект как класс. И писать «это» все времена очень утомительно. – Boyo

Смежные вопросы