函式的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...