es6 方法简写的问题

var obj1= {

fn1 (){}.bind()

}
var obj2= {

fn2: function(){}.bind()

}

fn1会报错,fn2正常,是什么原理?

阅读 3.3k
3 个回答

这个语法错误。
es6制定了 对象内 属性 和 方法的简写,简写方法的属性名总是 变量本身作为字符串使用。

你上面的那种写法,bind函数本身返回一个函数,从解析器角度来说,这个返回的函数叫什么名字并没有办法确定,像你第二种写法,还可以自定义,对不对,所以无法确定 属性字符串当然不能这么用。

var obj1= {
    fn1 (){}
}

为什么报错?因为你写的不对

简写方式只是针对 fn(){} => fn: function() {}你写方式引擎不认识

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题