簡體   English   中英

使用變量名綁定JavaScript函數的名稱

[英]Binding a name for JavaScript function using variable name

我遇到以下問題:

在此輸入圖像描述

我認為問題很明顯,匿名函數不會取其變量的名稱。

因此,如何擴展Function Object Constructor以根據受影響的變量為函數命名?

你可以這樣做:

var i_am = function i_am() { return "I Sure Am!"; }

這種語法一直有效,但過去有一些瀏覽器的怪癖 如果擔心這些怪癖,你可以隨時這樣做:

function i_am() {
  return "I Sure Am!";
}

var i_am = i_am;

這是一個有點腥,因為在本地范圍“i_am”結合從功能劫持,但功能仍保留了內部約束。

現在,沒有辦法追溯性地為函數提供內部綁定的名稱。 函數在創建時幾乎被凍結(如果你考慮語言語義和優化,那就是應該的方式)。

你不能。

在創建函數時確定函數的名稱。

如果使用未命名的函數表達式,則將創建該函數(沒有名稱), 然后將其分配給變量。

由於變量在此之前不會出現在函數附近,因此不能用於確定函數的名稱。

如果要為函數表達式創建的函數提供名稱,請​​使用命名函數表達式。

var addFn = function addFn () {};

(警告:舊版本的Internet Explorer存在內存泄漏和與命名函數表達式相關的范圍相關錯誤)。

暫無
暫無

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

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