函式的擴充套件 name屬性

2021-08-16 10:03:32 字數 1007 閱讀 6615

函式的name屬性返回該函式的函式名

function foo() {}

foo.name // "foo"

這個屬性早就被瀏覽器廣泛支援,但是直到 es6,才將其寫入了標準。

需要注意的是,es6 對這個屬性的行為做出了一些修改。如果將乙個匿名函式賦值給乙個變數,es5 的name屬性,會返回空字串,而 es6 的name屬性會返回實際的函式名。

var f = function () {};

// es5

f.name // ""

// es6

f.name // "f"

上面**中,變數f等於乙個匿名函式,es5 和 es6 的name屬性返回的值不一樣。

如果將乙個具名函式賦值給乙個變數,則 es5 和 es6 的name屬性都返回這個具名函式原本的名字。

const bar = function baz() {};

// es5

bar.name // "baz"

// es6

bar.name // "baz"

function建構函式返回的函式例項,name屬性的值為anonymous

(new function).name // "anonymous"
bind返回的函式,name屬性值會加上bound字首。

function foo() {};

foo.bind({}).name // "bound foo"

(function(){}).bind({}).name // "bound "

ES6 函式的擴充套件 name屬性

函式 name 的屬性,返回該函式的函式名。function foo foo.name foo 這個屬性以前就支援,只是 es6 對這個屬性的行為做了一些修改。如果將乙個匿名函式賦值給乙個變數,es5 的 name 屬性,會返回空字串,而 es6 的 name 屬性會返回實際的函式名。var f f...

函式name屬性

在函式宣告和函式命名表示式中都有name屬性。很多資料中都說明函式宣告和命名函式表示式中都已定義了name屬性,對此我也深信不疑。今天做了乙個小測試,發現在ie下函式的name屬性一直都是未定義。1function foo 函式宣告 2var bar function 函式表示式 3var baz ...

函式的name屬性

函式的name屬性返回函式的名字。function fn fn.name fn 如果是通過變數賦值定義的函式,那麼name屬性返回變數名。var f function f.name f 但是,上面這種情況,只有在變數的值是乙個匿名函式時才是如此,如果變數的值是乙個具名函式,那麼 name屬性返回的f...