2017-07-04 43 views
-1

我不知道里面不確定爲什麼它的不確定,如果我聲明,像這樣:可變自調用函數

var mainBtn = $('.main-button'), 
    cloneFund = (function(mainBtn) { 
     console.log(mainBtn); // undefined 
     return arguments.callee; 
    })(); 

甚至:

var btn = $('.main-button'), 
    cloneFund = (function(btn) { 
     console.log(btn); // undefined 
     return arguments.callee; 
    })(); 
+2

因爲你不傳遞任何參數到函數調用,'})();',函數參數覆蓋變量在外部範圍內,它們不共享值 –

+1

它只是我還是兩個樣本都是相同的,但只是不同的var名稱? – guradio

回答

1

你應該有:

var btn = $('.main-button'), 
    cloneFund = (function(btn) { 
     console.log(btn); // undefined 
     return arguments.callee; 
})(btn); // need to add the argument when invoked 
1

你要通過mainBtn工作。

var mainBtn = $('.main-button'), 
 
    cloneFund = (function(mainBtn) { 
 
     console.log(mainBtn); // available 
 
     return arguments.callee; 
 
    })(mainBtn); // here you have to pass
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button class="main-button">Main Button</button>

+0

我明白了,但爲什麼anon函數不能訪問變量? – 3zzy