js callee與caller
這兩個屬性的使用算是比較頻繁,本章節將會簡要的做一下介紹,希望能夠給需要的朋友帶來或多或少的幫助。
一.caller屬性:
此屬性可以返回函式的呼叫者,為了更好的理解和記憶此函式,有必要從它的名稱下手,caller的英文意思是"呼叫者"後者"呼叫者"。
下面看一段例項程式碼:
[JavaScript] 純文字檢視 複製程式碼function func(){ if(func.caller) { console.log(func.caller.toString()); } else{ console.log("函式直接執行"); } } function handleCaller() { func(); } handleCaller(); func();
以上程式碼中,第一個函式handleCaller()執行會輸出func函式的呼叫也就是:
[JavaScript] 純文字檢視 複製程式碼function handleCaller() { func(); }
第二個函式func()執行會輸出"函式直接執行",因為它的執行沒有呼叫者。
二.callee屬性:
此屬性返回正在被執行的Function物件。它的英文意思是"被召者"。
它是argument物件的一個屬性,它表示對函式物件本身的引用,這有利於匿名,下面先看一段程式碼例項:
[JavaScript] 純文字檢視 複製程式碼function calleeLengthDemo(argOne,argTwo) { console.log(arguments.callee.toString()); if(arguments.length==arguments.callee.length) { console.log("驗證形參和實參長度正確!"); return; } else\0{ console.log("實參長度:" + arguments.length); console.log("形參長度:" + arguments.callee.length); } } calleeLengthDemo(1);
以上程式碼中,console.log(arguments.callee.toString())可以輸出calleeLengthDemo()函式,大家要注意的是Function物件的length屬性會返回函式的形引數量。console.log("實參長度:" + arguments.length)會輸出傳入函式的實引數量,console.log("形參長度:" + arguments.callee.length)輸出形引數量。
相關閱讀:
arguments可以參閱javascript arguments一章節。
相關文章
- js中的arguments,caller,callee,applyJSAPP
- Function.caller, arguments.caller, arguments.callee, arguments.callee.calllerFunction
- js apply/call/caller/callee/bind使用方法與區別分析JSAPP
- callee與caller的區別簡單介紹
- javascript callee和caller屬性用法JavaScript
- Javascript - 全面理解 caller,callee,call,applyJavaScriptAPP
- 理解JavaScript中的arguments,callee,caller,applyJavaScriptAPP
- JavaScript方法call,apply,caller,callee,bind的使用詳解及區別JavaScriptAPP
- Application.Caller詳細解釋APP
- 讓服務呼叫更簡單 - Caller.HttpClientHTTPclient
- 【譯】function.caller 被認為是有害的Function
- arguments.callee實現遞迴簡單程式碼例項遞迴
- js == 與 ===JS
- jsf與jspJS
- win10系統出現藍屏Bad pool caller怎麼辦 win10系統藍屏,出現bad pool caller如何處理Win10
- js與DOMJS
- java.lang.SecurityException: Unable to find app for caller android.app.ApplicationThreadProxyJavaExceptionAPPAndroidthread
- fastjson @JSONField與SerializerFeatureASTJSON
- AngularJS與RequireJS整合方案AngularJSUI
- JSONObject與JSONArray的使用JSONObject
- win10系統出現藍色畫面Bad pool caller怎麼辦 win10系統藍色畫面,出現bad pool caller如何處理Win10
- JSONObject與JSONArray 解析JSON格式字串JSONObject字串
- NPM 與 NodejsNPMNodeJS
- 字串與JSON字串JSON
- js運算子 “==” 與 “===”JS
- XML與JSONXMLJSON
- JMap與JStackJS
- JSP與ServletJSServlet
- BackboneJS與RailsJSAI
- NodeJS 與 ExpressNodeJSExpress
- JS -真與假-JS
- 微信JSSDK與NodeJS深度整合NodeJS
- JSON 與 JS 物件的關係JSON物件
- json與jsonp的區別JSON
- js字串與json物件處理字串JSON物件
- Json物件與Json字串互轉JSON物件字串
- js中的JSON介紹與案例JSON
- 前端js指令碼與防止js指令碼前端JS指令碼