Игра с "этим" в 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();Можно также использовать функцию .прототип.вызов для изменения контекста
thisq.bonus.a.b.call(q);