javascript - arguments.callee
問題描述
function f (){ return arguments.callee;}f();
這里的return有什么作用呢?
問題解答
回答1:arguments.callee 就是這個函數(shù),好像 ES6 已經(jīng)不推薦用了。
題目的代碼等同于
function f (){ return f;}回答2:
返回函數(shù)體本身
回答3:如果你想知道你這段代碼的用途以及arguments.callee的作用可以先跟著我修改兩次你的代碼,看看效果,并自己總結一下,再接著看那個大概的解釋
方法一增加一行代碼:alert(1); 并在調用的fn()后面再添加一個括號[ 改為fn()() ],最終如:
function f(){ alert(1); return arguments.callee();}f()();方法二
增加一行代碼:alert(1);,并將arguments.callee;改為arguments.callee();,最終如下:
function f(){ alert(1); return arguments.callee();}f();解釋
arguments 是JS里面一個內置對象,存在于任何函數(shù)[ function ]中,而callee則是arguments對象中的一個方法指向調用它的這個函數(shù)本體,這里就是說它就相當于是f,調用callee等同于你又調用了一次f,其實callee多數(shù)情況是在匿名函數(shù)內部使用,如:
(function(){alert(1);return arguments.callee(); })()關于return
這里的return就是返回整個函數(shù)本身·f通過上面的解釋你可以知道這里的arguments.callee就等同于f,如:
function f(){ alert(1); return arguments.callee;}f();↑↓等價于function f(){ alert(1); return function f(){ alert(1); };}f();回答4:
嚴格模式下報錯。 不推薦使用這個。
相關文章:
1. 網(wǎng)頁爬蟲 - python爬蟲翻頁問題,請問各位大神我這段代碼怎樣翻頁,還有價格要登陸后才能看到,應該怎么解決2. python如何不改動文件的情況下修改文件的 修改日期3. 算法 - python 給定一個正整數(shù)a和一個包含任意個正整數(shù)的 列表 b,求所有<=a 的加法組合4. python - thrift 返回 TSocket read 0 bytes 求助!!!!5. javascript - 微信h5發(fā)送圖文信息,部分設備點擊“發(fā)送”按鈕時沒反應,問題較難重現(xiàn),如何能找到可能存在問題的點?6. javascript - 微信小程序里怎么把頁面轉成圖片分享7. python 正則表達式提取8. python - 求一個在def中可以實現(xiàn)調用本def滿足特定條件continue效果的方法(標題說不太清楚,請見題內描述)9. javascript - JS用ajax爬取百度外賣店家信息10. python - Pycharm調試代碼進行列表遍歷時,如何直接賦值指定元素
