當前位置:編程學習大全網 - 遊戲軟體 - 怎麽樣查看JavaScript對象被誰引用

怎麽樣查看JavaScript對象被誰引用

這個問題是可以辦到的。

最關鍵的地方是獲得調用者的名稱,需要用到 arguments 對象讀取 js 的調用棧。

function search(){

// 以下兩句是等效的

alert(search.caller.name);

alert(arguments.callee.caller.name)

}

function baidu(){

search();

}

function google(){

search();

}

google();

baidu();

執行以上代碼會分別得到 google 和 baidu。下面是對調用的對象分解解說:

name 和 caller 屬性:

在 js(正確的名稱應該是:ECMAScript) 裏壹切都是對象,變量就不用說了,連函數也是作為對象存在的。每個函數都有 name 和 caller 屬性,name 屬性返回函數的名稱,而 caller 屬性返回的是調用它的函數對象(是對象不是名稱)。

arguments 對象及它的 callee 屬性:

而函數在調用開始會生成壹個 arguments 對象,這個對象不光能讀取到轉遞給函數的參數,還能通過 callee 屬性返回生成它的函數對象,在上面的例子中 arguments.callee == search 函數對象,使用 arguments.callee 的好處是當 search 函數改名也不會影響程序的正確性。

根據以上兩條,不難得到 arguments.callee.caller.name 就是當前函數的調用者名稱了

  • 上一篇:北京奧體中心跆拳道班報名壹般多少錢?多長時間的?有寒假班嗎?
  • 下一篇:歪歪鴿寶真名字事啥
  • copyright 2024編程學習大全網