У меня есть код и он делает следующийФункция ошибка области видимости в JavaScript
var Device = function(temp){
this.list = temp;
Device.prototype.getList = function(){
return list;
};
Device.prototype.foo = function(tempFunc){
navigator.geolocation.watchPosition(
function(pos) {
//I want to call getList here so lets do it
//Method No1
var list = this.getList();
//Method No2
var list = Device.prototype.getList();
//Method No3
var list = getList.call(Device)
},
funciton(){
console.log("Error")
}
};
};
Во всех трех методах я получаю сообщение об ошибке. 1.объект [объект global] не имеет метода, называемого get list. 2. список не определен 3. Невозможно вызвать неопределенный.
Я также попытался вызвать метод foo в этом контексте, тогда pos не распознается в контексте, и передача getList в качестве аргумента мне тоже не помогла. Я думаю, что у меня есть понимание проблемы здесь, но я не знаю, как с этим справиться. Мне нужен метод getList, который вызывается в анонимной функции, но эта функция вызывается в глобальном контексте, это мое мышление. Может ли кто-нибудь разобраться в этом.
Вы ангел .. :) Я читал о bind по какой-то причине, я не понимаю терминологию java-script, независимо от того, насколько я читаю .. Большое спасибо ... – Tharanga