中午的時候稍微研究了下javascript function中的arguments
復制代碼 代碼如下:
<script type="text/javascript">
window.onload = function() {
(function(arg1, arg2) {
alert(arguments.length);
alert(arguments.callee.length);
})();
}
</script>
其中觀察了下arguments.length和arguments.callee
首先arguments當然只在function體內才有意義, arguments.length 返回的是傳入function的實參個數,比如我這裡沒有傳入什麼,而是直接運行了一個匿名函數,那麼第一個alert肯定是'0', 再來看arguments.callee返回的是調用的函數本身, 對於匿名函數,則可以通過arguments.callee得到自身的引用,這裡arguments.callee.length返回的是function本預期要傳入的參數個數,這樣的話第二個alert就是'2', 如果這是個有名字的函數比如函數名為mytest,那麼就可以直接mytest.length來得到應該傳入的參數個數.