[英]JavaScript: Set name of inner function to be name of variable it's assigned to
我正在嘗試進行一些組合,並且正在使用函數名稱在對象中分配鍵。 因此,我有一個像這樣的高階函數:
function doThing(fn) {
return function (...args) {
return fn(...args);
};
}
我將外部函數的結果分配給一個變量:
var coolThing = doThing(someFunction);
我想要coolThing.name
等於'coolThing'
。
現在,我非常確定這是不可能的,因為一旦返回內部函數,該名稱將設置為空字符串,並且無法再更改。 但是我想知道我是否可以優雅地使類似的東西工作而不會跳過詞法分析器或類似的事情。
只是將doThing(someFunction)
與另一個函數包裝doThing(someFunction)
就可以使它工作,但是最終使它不比我開始時做的更好。
它不必是我正在使用的name屬性,但是該函數需要具有一些可以從變量名稱中獲取其值的屬性。
有什么想法嗎,還是我想在這里變得太可愛了?
我很確定那是不可能的
你是對的。 變量名不能通過編程方式訪問,並且肯定不能在doThing
內doThing
。 即使對於函數聲明和分配的匿名函數表達式,隱式分配的.name
屬性也是運行時確實從源文本中提取的那些語法構造的東西。 它不能被截獲,無論如何僅應用於調試目的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.