es6 方法简写的问题

var obj1= {

fn1 (){}.bind()

}
var obj2= {

fn2: function(){}.bind()

}

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

阅读 3.4k
3 个回答

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

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

var obj1= {
    fn1 (){}
}

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

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

推荐问题