2016-01-20 6 views
3

Я здесь новый.ECMAscript 6 код не работает

Я читаю книгу под названием «Обучение Javascript, третье издание» и один из упражнений был запущен этот код:

"use strict"; 



let sentences = [ 
{ subject: 'JavaScript', verb: 'is', object: 'great' }, 
{ subject: 'Elephants', verb: 'are', object: 'large' }, 
]; 
function say({subject, verb, object}) { 
console.log(`${subject} ${verb} ${object}`); 
} 
for(let s of sentences) { 
say(s); 
} 

Но появляется эта ошибка.

SyntaxError : Unexpected token { 

что не так с кодом?

Я использую node.js, gulp.js и babel для транспиляции для кода es5.

PS: Извините за мой плохой английский, я все еще учусь, и я стараюсь не использовать Google Tranlate

+2

Если я не ошибаюсь, 'function say ({subject, verb, object})' является проблемой. Вы не ставите аргументы '{}' вокруг аргументов функции. Это должно быть 'function say (subject, verb, object)'. – Mjh

+4

@Mjh Это разрушает. Проблема в том, что транспилер не справляется с этим повсюду. ОП, проблема в том, КАК вы переводите. Какой пресет вы используете? –

+0

Если это разрушение не должно {{subject, verb, object} 'быть' {subject: subject, verb: verb, object: object} '? На основе приведенных здесь примеров https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment, я никогда не использовал его сам. –

ответ

0

Я нашел решение

Мой файл глотком был неправ, и установить предустановку 2015 года

это мой файл глоток теперь

var gulp = require('gulp'); 
var babel = require('gulp-babel'); 


gulp.task('default',() => { 
return gulp.src("es6/**/*.js") 
.pipe(babel({presets:["es2015"]})) 
.pipe(gulp.dest("dist")); 
}); 

Спасибо за человек, которые помогли мне

Смежные вопросы