考慮此代碼:獲取函數名稱,如印刷在Chrome控制檯
var o = {};
o.f = function(){};
new o.f;
鉻打印o.f {}
到控制檯。你知道如何調用這個零件嗎?更重要的是,有沒有辦法在不使用控制檯的情況下得到這個結果?我想從函數本身提取方法的名稱,也就是說,沒有任何附加信息。
我已經知道如何在這種情況下獲得的名稱:
function f(){}
f+'' // "function f(){}"
不過,這並不表現在上述情況相同的方式。
以下內容大多是從comments複製。
我想知道是否有一個「技術」字來談論這個o.f
模式,比如說「命名空間」,「標識符」或「功能路徑」。然後,我想知道是否有方法從網頁中的加載腳本中檢索此信息。下面的問題可能會幫助你理解我的目標,在第一個代碼塊與我的想法非常接近之後的段落:Does Chrome retain each object's constructor?。
也許我應該提到,我最初的目標是在運行時生成一個文檔:/在某些情況下,反射API可能會有幫助。更確切地說,我正在尋找一種方法,將方法的名稱包含在函數的反編譯形式中。看:
function Class(){}
Class.prototype.method = function(){};
Class.prototype.method + ''
給出function(){}
。我想注入方法的名稱來得到這個結果:function method(){}
。
問題是我沒有任何有關我當前正在序列化哪些函數的信息,因爲操作發生在用戶單擊鏈接時。我知道我可以輕鬆地將名稱存儲在某個地方,例如將數據綁定到錨元素,這對我來說很明顯,我只是好奇地想知道是否有辦法像Chrome一樣檢索這些數據。
你需要什麼? – zerkms
有沒有辦法與js(據我所知) –
可能重複的[我可以得到當前正在運行的函數在JavaScript中的名稱?](http://stackoverflow.com/questions/1013239/can-i-get - 當前運行的函數在JavaScript中) – Quentin