鑑於這種方法:你可以將一個匿名方法(函數)動態地變成一個命名方法嗎?
var obj = {}, obj.foo = function() {};
是它的創建後,所以它看起來相似,它可以分配方法的名稱:
var obj = {}, obj.bar = function bar() {};
foo的方法是匿名的,分配給一個屬性。 bar方法被命名並分配給一個屬性。
你可以將匿名foo方法動態地變成一個名爲foo的方法嗎?是否有可以設置或類似的功能對象的屬性:
obj.foo.<name> = Object.keys(obj)[0];
請不要使用jquery。此外,這是在節點服務器應用程序中,因此跨瀏覽器問題將無關緊要。
編輯:對我有效的答案是丹尼爾的鏈接:How to dynamically set a function/object name in Javascript as it is displayed in Chrome。這種方法也處理函數的參數。
爲什麼你需要這樣的功能? – 2015-04-04 17:30:24
除非您願意獲取函數的字符串值(即JavaScript源代碼),修改該函數並從中創建新函數,否則沒有辦法做到這一點。你想達到什麼目的?無論如何,函數外部的'function'表達式中給出的名字在函數外部是不可見的。 – Pointy 2015-04-04 17:30:36
[命名匿名函數]可能的重複(http://stackoverflow.com/questions/3854141/naming-an-anonymous-function) – 2015-04-04 17:32:35