簡體   English   中英

JavaScript:將內部函數的名稱設置為分配給它的變量的名稱

[英]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屬性,但是該函數需要具有一些可以從變量名稱中獲取其值的屬性。

有什么想法嗎,還是我想在這里變得太可愛了?

我很確定那是不可能的

你是對的。 變量名不能通過編程方式訪問,並且肯定不能在doThingdoThing 即使對於函數聲明和分配的匿名函數表達式,隱式分配的.name屬性也是運行時確實從源文本中提取的那些語法構造的東西。 它不能被截獲,無論如何僅應用於調試目的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM