Сообщение от MishaUA
|
Но как задать объект this в данном случае?
|
Контекст надо задавать при вызове функции. А вызов у тебя происходит на третьей строчке. Вот там и должен устанавливаться контекст. Например так:
var ob = {
function func(callb, context) {
callb.call(context);
}
}
function MainObject() {
var testVar = false;
ob.func(function(){
this.testVar = true;
}, this);
}
Хотя есть ES5 функция bind(), с помощью которой можно привязать контекст к самой функции:
ob.func(function(){
this.testVar = true;
}.bind(this));
Ну и самый простой вариант, не требующий указания контекста:
var mainObject = this;
ob.func(function(){
mainObject.testVar = true;
});