javascript中callee與caller的區別
callee
callee是對象的一個屬性,該屬性是一個指針,指向參數arguments對象的函數
首先我們來寫個階成函數:
function chen(x){if (x<=1) {return 1;} else{return x*chen(x-1);};};
從這個函數中可以看出來,用到了遞歸函數,要是改變了函數名,裏面的.函數名也要隨着改變,這樣很不方便所以我們用callee來試試
function chen(x){if (x<=1) {return 1;}else{return x*ee(x-1);};};
我們來分析一下為什麼這樣寫:根據callee的定義,可以看出來callee是arguments對象的一個屬性,指向arguments對象的函數,這個函數就是chen(chen=ee),這樣解釋應該可以理解了吧。
caller
caller是函數對象的一個屬性,該屬性保存着調用當前函數的函數的引用(指向當前函數的直接父函數)
先來個例子吧
function a(){b();};function b(){alert(er);};a(); //結果就是彈出函數a和內容
我們來解釋一下吧,首先函數b的屬性caller調用當前函數b的函數引用a(就是指向當前函數b的父函數a),所以結果就是彈出 function a(){ b();};
那麼瞭解了caller和callee,那麼可以不可以將二者結合在一起來使用呢
function b(){alert(er);};
從這個代碼可以看出b函數中調用了b函數名,這樣當函數名改變時就很不方便,我們需要替換裏面的那個b
前面我們知道用什麼方法可以指向當前對象,下面我們就來修改一下:
(function a(){b();})();function b(){alert(er);};
從代碼中可以看出我們用ee代替了b函數,所以解決了一下麻煩。。。。。
以上所述就是本文的全部內容了,希望大家能夠喜歡。
-
python批量生成本地ip地址的方法是什麼
python批量生成本地ip地址的方法是什麼呢?本文實例講述了python批量生成本地ip地址的方法。分享給大家供大家參考。具體分析如下:...
-
javascript中的return和閉包函數
複製代碼代碼如下:functionmakefunc(x){returnfunction(){returnx;}}alert(makefunc(0));其實不是不執行,只是朋友的意思這裏alert出來的`應該是“0”,而不是function(){returnx;}。不是腳本寫錯了,只是沒搞懂return,從當前函數退出,並從那個函數返回一個值。如果返...
-
網頁設計很糟糕的10個原因
個好的網頁設計,不僅吸引眼球,也是實用的、直觀的、層級簡單卻足夠複雜到保持用户的興趣。但是不好的網頁設計是由很多原因造成的,下面是關於網頁設計很糟糕的10個原因,歡迎閲讀了解!沒有足夠的空白空白可以説是設計中最重要的一部分。它有助於防止用户在瀏覽網站時...
-
WAP教程:WML 鏈接和圖像
鏈接可以製作WML卡片來顯示WML的錨功能,圖像可以製作WML卡片來顯示圖像.鏈接可以製作WML卡片來顯示WML的錨功能。標籤總是要規定一個任務("go","prev",或"refresh")。任務定義了當用户選擇此鏈接時要做的事情。在本例中,當用户選擇"Nextpage",其任務是"前往":Next...
相關文章
- 如何理解Javascript的caller,callee,call,apply區別
- 如何理解Javascript的caller,callee,call,apply區別
- 如何理解Javascript的caller,callee,call,apply區別
- 如何理解Javascript的caller,callee,call,apply區別
- 如何理解Javascript的caller,callee,call,apply區別
- 如何理解Javascript的caller,callee,call,apply區別
- 如何理解Javascript的caller,callee,call,apply區別
- 如何理解Javascript的caller,callee,call,apply區別
- 如何理解Javascript的caller,callee,call,apply區別
- 如何理解Javascript的caller,callee,call,apply區別