如果对象文字不包含,IE 11 会抛出错误:我该如何解决这个问题?



下面的代码在除IE11以外的所有浏览器中都运行良好。 在IE11中,它会抛出错误,Expected ':'如果必须在每个键后使用:,如何将变量传递到工厂函数中? 非常感谢!

'use strict';
	
var factoryCreature, zombie;
factoryCreature = function(species, actionOne, actionTwo) {
  return {
    species,
    actionOne,
    actionTwo,
    creatureStory() {
      console.log('The ' +this.species +' is about to ' +this.actionOne +' and ' +this.actionTwo +'.');
    }
  }
}
	
zombie = factoryCreature('Zombie', 'charge', 'bite');
	
zombie.creatureStory();

IE11没有完整的ES6支持。专门用于对象文字速记。http://kangax.github.io/compat-table/es6/#test-object_literal_extensions

具体来说,我会切换到长手。

{ a:a, b:b}
好吧,

不要使用 ES6 对象表示法:

return {
  species: species,
  actionOne: actionOne,
  actionTwo: actionTow,
  creatureStory: function() {
     console.log('The ' +this.species +' is about to ' +this.actionOne +' and ' +this.actionTwo +'.');
   }
}

你可以使用 babel 或类似的 sth 来自动化此操作。

最新更新