3 回答

TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個(gè)贊
var states = function(state){ // 這里既然有參數(shù)為什么下面調(diào)用的時(shí)候不傳值?這里面的state只是你定義的一個(gè)名稱而已,它又不會(huì)幫你去外面找名字一樣的放進(jìn)來(lái)
console.log(state) // undefined
return state == "" ? "online" : (state=state||"online");
};
正確的調(diào)用姿勢(shì)console.log(states(state)) // offline
上面有答案把function里面的參數(shù)去掉就可以了,簡(jiǎn)單解釋一下,是因?yàn)槟阍谕饷娑x的state是全局變量,而在function里面的參數(shù)是局部變量,當(dāng)function執(zhí)行的時(shí)候它會(huì)首先找到內(nèi)部定義的變量,再往外找,這里你如果把參數(shù)名改成其他的,不和外面的重名,輸出也會(huì)變成正常的offline

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超10個(gè)贊
var states = function(state){
return state == "" ? "online" : (state=state||"online");
};
改為
var states = function(){
return state == "" ? "online" : (state=state||"online");
};

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超10個(gè)贊
添加回答
舉報(bào)