Я знаю, что в коде ниже он напечатает undefined
, если я нажму на кнопку, потому что this.field
становится внутри контекста кнопки, а не Container
.У меня вопрос, как я могу получить доступ к this.field
из Container
, когда this.func
передается в другую функцию, которая отличается от контекста контекста, чем Container
.
function Container(){
this.field = 'field';
$('button').click(this.func);
}
Container.prototype.func = function(){
console.log(this.field);
}
Я знаю, что могу это сделать, но есть ли лучший способ?Потому что я бы лучше определил методы вне конструктора, чтобы не загромождать его.
function Container(){
var thisObj = this;
this.field = 'field';
$('button').click(function(){ console.log(thisObj.field) });
}