Ваш второй пример не относится к ES6, он действителен ES5 синтаксис:
set setLanguage(val) {
this.language = val;
},
С Спецификация инициализатора объекта (ES5)
PropertyAssignment :
PropertyName : AssignmentExpression
get PropertyName () { FunctionBody }
set PropertyName ( PropertySetParameterList ) { FunctionBody }
Как видите, после PropertyName есть :
, но в геттере или установщике :
или function
нет
Обновление:
Вы, вероятно, перепутали понятия имен вычисляемых свойств и получателей / установщиков
ES6 представили имен вычисляемых свойств, поэтомуВы можете сделать это (этот фрагмент вероятно не будет работать в старых браузерах, таких как IE):
const person = {
language: "",
setLanguage(val){
this.language = val;
},
getLanguage(){
return this.language;
}
}
person.setLanguage("EN");
console.log("person.language", person.language);
console.log("person.getLanguage()",person.getLanguage())
Обратите внимание на отсутствие ключевых слов set
или get
и что вам нужно позвонить person.setLanguage("EN");
вместо person.setLanguage = "EN";
В ES5 вы 'Вам придется (изменить const
на var
и) использовать:
setLanguage: function(val) {
this.language = val;
},
getLanguage: function() {
return this.language;
},