当对一个函数递归或者栈追踪的时候,就会觉得函数名称是多么的重要。否则满屏的anonymous分分钟想打人。今天阅读《你不知道的JavaScript》(下卷)的时候,发现作者有对name进行总结,于是在这里记录一下,以便加深记忆,日后查阅。
下面是ES6中名称推导的其他几种形式:
(function(){}); // name: ""(空字符串)(function*(){}); // name: ""window.foo = function(){}; // name: ""class Awesome { constructor() {} // name: Awesome
funny() {} // name: funny}var c = class Aewsome {}; // name: Aewsomevar o = {
foo() {}, // name: foo
*bar() {}, // name: bar
baz: () => {}, // name: baz
bam: function(){}, // name: bam
get qux() {}, // name: get qux
set fuz() {}, // name: set fuz
["b" + "iz"]: function(){}, // name: biz
[Symbol("buz")]: function(){} // name: [buz]};var x = o.foo.bind(o); // name: bound foo(function(){}).bind(o); // name: boundexport default function() {}; // name: defaultvar y = new Function(); // name: anonymous默认情况下,name属性不可写,但是可以配置。如果需要,可使用Object.defineProperty()手动修改。
作者:坤少卡卡
链接:https://www.jianshu.com/p/5c079a154c07
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦