Игра с "этим" в Javascript
Дано:
var q = {};
q.id = 1234;
q.bonus = {
'a':{
'b':(function(){
//i want to access q.id
var id = this. ??? .id
}),
}
};
Что должно быть ??? чтобы получить доступ q.id.
3 ответа:
Для доступа к
q.id
в функции, связанной сb
, Используйте функцию .прототип.bindvar q = {}; q.id = 1234; q.bonus = { 'a':{ 'b': (function(){ //i want to access q.id var id = this.id; console.log(id); }).bind(q), } }; q.bonus.a.b();
Можно также использовать функцию .прототип.вызов для изменения контекста
this
q.bonus.a.b.call(q);