1. 程式人生 > 程式設計 >es6函式name屬性功能與用法例項分析

es6函式name屬性功能與用法例項分析

本文例項講述了es6函式name屬性功能與用法。分享給大家供大家參考,具體如下:

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

感興趣的朋友可以使用線上HTML/CSS/JavaScript程式碼執行工具:http://tools.jb51.net/code/HtmlJsRun測試上述程式碼執行效果。

更多關於JavaScript相關內容可檢視本站專題:《javascript面向物件入門教程》、《JavaScript錯誤與除錯技巧總結》、《JavaScript資料結構與演算法技巧總結》、《JavaScript遍歷演算法與技巧總結》及《JavaScript數學運算用法總結》

希望本文所述對大家JavaScript程式設計有所幫助。