Учитывая этот код:
function MyClass() {
var v = '1';
this.hi = function() {
console.log('Value of V is ' + v);
var v = '2';
console.log('Value of V is ' + v);
delete(v);
console.log('Value of V is ' + v);
}
}
Когда я делаю что-то вроде:
z = new MyClass();
z.hi();
В результате я получаю:
Value of V is undefined
Value of V is 2
Value of V is 2
Что я хочуОбъясните, почему результат таков.
Почему V не определено (как я понимаю - и это может быть неверно - в JS все время определения, а нево время выполнения, так что по определению у функции была своя собственная переменная "v", но она еще не определена в первой строке).
Почему V не удаляется?Держал такое же значение?
Как получить доступ к "v" со значением "1" из "на один уровень вверх"?
Я знаю, еслиЯ использую другое имя переменной в функции «hi», я смогу «увидеть» переменную «v» со значением «1» в функции.Так что я вроде как прячу оригинал, но это все еще оставляет вопрос № 3 - как мне получить доступ к «первому уровню»?
Спасибо!