Глядя на это деструктурирующей уступке (ES6):Пытающее неявное принуждение?
var {a, b} = {a:1, b:2}
console.log(b); //2
Очевидно, что a
будет 1
и b
будет 2
.
Babel трактует как:
"use strict";
var _a$b = { a: 1, b: 2 };
var a = _a$b.a;
var b = _a$b.b;
console.log(b);
OK.
Но, глядя на этот код:
var { x : { y = 10 } } = { x : 15 };
console.log(y); //10
Как вы можете see результат является 10
. По словам Кайла Симпсона, здесь подразумевается принудительное принуждение.
Вопрос:
Что такое неявное принуждение, что здесь происходит, и почему/как это y
является 10
?
Это выглядит как '{expr; } 'рассматривается как собственный кодовый блок,' y' может даже не быть 'var'd, проверить, попадает ли он в область или глобальный объект –
В ночное время я получаю' SyntaxError: missing: after property id'. – Oriol
Не могли бы вы процитировать или связать Кайла Симпсона? – Bergi