Я очень новичок в JS, и я пытаюсь установить значение переменной внутри функции, но после установки значения оно не определено. Мой код выглядит следующим образом:
(function (name, context, definition){ 'use strict' ...} ('FP2', this, function (){...})
var fp = new FP2();
fp.get(function(result, components) { for (var index in components){...};
var IP = 'nothing';
$.getJSON('http://gd.geobytes.com/GetCityDetails?callback=?', function(data) {
this.IP = JSON.stringify(data, null, 2);
alert(this.IP);
});
alert(IP);
});
Я ожидаю, что переменная IP имеет одинаковое значение внутри и снаружи функции, но это не так. Внутреннее предупреждение показывает ожидаемое значение, но предупреждение вне функции показывает «ничего».
Из похожих вопросов 1 , 2 , 3 , я не использую var, чтобы переопределить локальную переменную внутри функции, и я указываю на IP переменная вне функции с использованием 'this.', поэтому я не понимаю, почему она не работает должным образом?