Хорошо, так что я знаю, что через замыкание я могу сделать что-то вроде этого:
var x,
obj = {
init: function() {
x = 123;
},
func: function() {
return x;
}
};
obj.init();
obj.func();
==> 123
Однако я хотел бы иметь возможность внешне применять значения для x (вне объекта и позже)... Я думал, что, возможно, я мог бы просто сделать:
var obj = {
init: function() {
// do something nice here...
},
func: function() {
return x;
}
};
var foo = {
doIt: function() {
var init = obj.init;
var x;
obj.init = function() {
x = 456;
init.apply(obj);
}
obj.init();
obj.func();
}
};
foo.doIt();
==> (error) x is not defined
Однако, это не работает .. Возможно ли это как-то сделать?
Спасибо.