es6函式name屬性功能與用法例項分析
阿新 • • 發佈:2020-04-20
本文例項講述了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程式設計有所幫助。