javascript callee和caller屬性用法
本章節將會對標題中的兩個概念做一下簡單介紹,希望能夠對需要的朋友帶來一定的幫助。
一.callee屬性:
此屬性可以返回正在執行函式物件正文,就是函式的程式碼字串內容。
callee是arguments物件的一個屬性。
語法結構:
[JavaScript] 純文字檢視 複製程式碼[function.]arguments.callee
引數解析:
1.function:可選,函式的名稱。
2.arguments:具體可以參閱javascript的arguments物件一章節。
程式碼例項:
例項一:
[JavaScript] 純文字檢視 複製程式碼function func(){ var a=1; var b=2; var c=a+b; } console.log(func.arguments.callee);
上面的程式碼會報錯,這是因為callee屬性在函式執行的時候才會有效,歸根接地是隻有在函式執行的時候才會有arguments物件,否則是個空物件。
例項二:
[JavaScript] 純文字檢視 複製程式碼function func(){ var a=1; var b=2; var c=a+b; console.log(func.arguments.callee); } func();
上面的程式碼會輸出函式的原始碼。
例項三:
利用此屬性可以實現遞迴功能,如下:
[JavaScript] 純文字檢視 複製程式碼var a=0; function func(){ a=a+1; if(a>20) return; arguments.callee(); } func(); console.log(a);
二.caller屬性:
此屬性可以返回一個函式的引用,此函式呼叫了當前函式。
只有在函式執行的時候此屬性才是有效的。
如果函式是頂層呼叫,返回值是null。
如果在字串上下文中使用此屬性,那麼返回的就是函式的正文,也就是函式的字串程式碼。
例項程式碼:
例項一:
[JavaScript] 純文字檢視 複製程式碼function func(){ var a=2; var b=3; done() } function done(){} console.log(done.caller)
上面的程式碼會返回一個空物件,只有當函式執行的時候此屬性才會有效。
例項二:
[JavaScript] 純文字檢視 複製程式碼function func(){ var a=2; var b=3; done() } function done(){ console.log(done.caller) } func();
以上程式碼會輸出func函式的程式碼內容,因為console.log()函式要輸出的是一個字串,所以處於字串上下文環境中。
相關文章
- Function.caller, arguments.caller, arguments.callee, arguments.callee.calllerFunction
- js中的arguments,caller,callee,applyJSAPP
- html中Position屬性值介紹和position屬性四種用法HTML
- JavaScript刪除和清空物件屬性JavaScript物件
- JavaScript cells 屬性JavaScript
- JavaScript rows 屬性JavaScript
- JavaScript nodeName 屬性JavaScript
- JavaScript offsetX 屬性JavaScript
- JavaScript classList 屬性JavaScript
- JavaScript rowIndex 屬性JavaScriptIndex
- JavaScript tagName 屬性JavaScript
- JavaScript nextElementSibling 屬性JavaScript
- JavaScript validity 屬性JavaScript
- JavaScript className 屬性JavaScript
- JavaScript style 屬性JavaScript
- JavaScript NaN 屬性JavaScriptNaN
- JavaScript Infinity 屬性JavaScript
- JavaScript parentNode 屬性JavaScript
- JavaScript firstChild屬性JavaScript
- JavaScript childElementCount 屬性JavaScript
- JavaScript prototype屬性JavaScript
- JavaScript files 屬性JavaScript
- 談談ThreadStatic屬性用法thread
- React屬性用法總結React
- JavaScript訪問物件的屬性和方法JavaScript物件
- vue中vuex的五個基本屬性和用法Vue
- JavaScript select text 屬性JavaScript
- JavaScript select size 屬性JavaScript
- JavaScript select length 屬性JavaScript
- JavaScript 例項屬性JavaScript
- JavaScript 字串 length屬性JavaScript字串
- defer 屬性和 async 屬性
- 深入理解JavaScript類與物件:揭秘類欄位和靜態屬性的妙用,js靜態屬性和例項屬性JavaScript物件JS
- JavaScript 函式 name 屬性JavaScript函式
- 理解 JavaScript 物件的屬性JavaScript物件
- JavaScript 刪除class屬性JavaScript
- JavaScript 函式 length 屬性JavaScript函式
- JavaScript 陣列 length 屬性JavaScript陣列
- JavaScript物件的資料屬性與訪問器屬性JavaScript物件