亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

試問 如果 nAdd=n 是不是就可以利用全局變量提出局部變量n了?。?/h1>

function f1(){

    var n=999;

    nAdd=function(){n+=1}

    function f2(){
      alert(n);
    }

    return f2;

  }

  var result=f1();

  result(); // 999

  nAdd();

  result(); // 1000

如果不行的話?為何nAdd=function(){n+=1}可以調用里面的n呢?難道是因為nAdd是由一個函數調用的 那么如果nAdd在f1的外面也可以調用嗎?WHY??求大神

正在回答

1 回答

不行,我還是厚著臉皮再來一次。

首先,nAdd是全局變量,用nAdd = n的方式是可以吧局部變量暴露出去的,如果nAdd是簡單的基本類型,n的每一次變化都需要通過nAdd = n的方式賦值。

第二個,關于n的作用域問題,這里nAdd的作用,形成閉包,局部變量n并不會在執行完result()后銷毀而是繼續保存在內存中。

0 回復 有任何疑惑可以回復我~
#1

Samuel_Yang 提問者

非常感謝!
2017-03-13 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

試問 如果 nAdd=n 是不是就可以利用全局變量提出局部變量n了???

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號