Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Поскольку объекты в Javascript — это тоже типа функции
Если примеры приведенные в статье мне непонятны (т.е. я не могу не запуская бразуер понять что произойдет, а могу только лишь догадываться) — то эта статья не помечается как мусор
Переменные в Javascript бывают глобальными и локальными. Глобальная переменная доступна везде, локальная — только в текущей области видимости.
Технически, глобальные переменные — всего лишь свойства объекта window, поскольку весь код выполняется в его контексте.
При присвоении значения неопределенной локальной переменной используется или создается глобальная переменная.
a = 10;
Явно объявлять переменные можно и нужно ключевым словом var
Передача кода по старинке — строкой, которая прогоняется через eval() — не попадает под это правило, код исполняется в той области видимости, где и определен.
var a = 10;
(function () {
var a = 100;
setTimeout('alert(a);', 0); // 10, а не 100
})();Поскольку объекты в Javascript — это тоже типа функции, то свойство объекта определяется точно так же, как и переменная.
function myObject() {
var property = 0;
// Cамо собой, property будет доступно только внутри объекта.
}
А еще в Javascript область видимости переменной ограничивается только функциями, а не блоками типа if (привет, Паскаль). Потому удобнее всего объявлять переменные в начале функции.
А что this?
function f() {
alert(this);
}
f(); // global (window)
f.prototype.constructor(); // f.prototype
Область видимости переменной в Javascript (ликбез)