В книге пытается проиллюстрировать глобальные/локальные переменные сферы он использовал этот пример, чтобы передать концепцию:Почему моя домашняя функция isset в javascript полностью не работает?
test();
if (isset(bar)){
alert('bar must be global!');
}else{
alert('bar must be local!');
}
function test(){
var foo = 3;
bar = 5;
}
function isset(varname){
return typeof varname != 'undefined';
}
Прямо сейчас, если возвращается предупреждение «бар должен быть глобальным», что имеет смысл, так как переменные перешел на isset()
, bar, в этом случае является глобальным. Но почему оператор if не возвращает предупреждение («foo должно быть локальным»); когда вы проходите, скажем, когда вы проходите foo
в функции isset.
Поскольку нет объявлен символ «Foo» при вызове 'Исеть()'. Если вы вызываете 'isset (foo)' from * inside * функцию "test", она будет установлена. – Pointy
Потому что вы просто вызываете 'isset()' один раз с 'bar' в качестве параметра. – Andy
Я знаю, что в теории это имеет смысл. Но не должен ли огонь 'else'? –