在一本書試圖說明全局/局部變量的作用域是用這個例子來傳達概念:爲什麼我在javascript中的自制isset函數完全不起作用?
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()
吧,在這種情況下是全球性的。但爲什麼if語句不會返回警報('foo must be local');當你通過讓我們說當你在isset函數中通過foo
。
因爲沒有申報象徵「福」,當你調用'isset()函數'。如果你從*裏面的「test」函數調用'isset(foo)',它就會被設置。 – Pointy 2014-10-16 14:24:36
因爲你只用'bar'作爲參數調用'isset()'一次。 – Andy 2014-10-16 14:24:50
我知道這在理論上是有道理的。但是不應該'別的'火? – 2014-10-16 14:26:11