не могу понять, почему внутри функции json
= undefined
. Почему так происходит? Первый console.log()
нормально выводит json
.
var r = {...}
console.log(r);
(function (r) {
console.log(r);
})();
Потому что аргументы и переменные надо именовать понятно для себя и других.
(function (r) {
console.log(r);
})();
Что здесь r
? Просто имя аргумента. Оно никак не связано с переменной r
объявленной ранее. А так как называется аргумент так же как и переменная, то в теле функции вам недоступна переменная r
. Запутанно? Вот поэтому надо именовать переменные правильно:
(function (jsonStr) {
console.log(r); // выводим глобальную переменную r
console.log(jsonStr); // выводим аргумент, он не передан, поэтому undefined
})();
(function (jsonStr) {
console.log(r); // выводим глобальную переменную r
console.log(jsonStr); // выводим аргумент, он передан и равен глобальной переменной r
})(r);
Потому, что вы не передаете в функцию параметр.
А входной параметр r
скрывает глобальную переменную r
Вот рабочий пример
var r = {a: 1};
console.log(r);
(function (r) {
console.log(r);
})(r);
Фактически происходит такой вызов
var r = {a: 1};
console.log(r);
(function (a) {
console.log(a);
})(r);
Также будет работать, если входной параметр убрать совсем
var r = {a: 1};
console.log(r);
(function () {
console.log(r);
})();
В сигнатуре анонимной функции есть параметр. А в вызове - параметра нет.
(function (r) {
console.log(r);
})(r);
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть код который добавляет на карту точки по запросу из JSONПолучаю эти точки и кластеризую их
Есть карта от гугл, я прописал путь к своей метке, она картинка
При авторизации пользователя на сайте создаётся его уникальный токенЗадача - подставить этот токен на странице *