Я только что отправил это в суть: https://gist.github.com/2228570
var out = '';
function doWhat(){
out += '';
console.log(out === ' '); // at this point, out will equal ' '
return '';
}
out += doWhat();
console.log(out, out === ' ');
// I expect out to == ' ', but it's actually an empty string!?
Это странное поведение, у кого-нибудь есть объяснение? Это сложная вещь для Google. Также не имеет значения, используете ли вы out +=
или out = out +
.
РЕДАКТИРОВАТЬ: @paislee сделал JSFiddle, который демонстрирует, как, если doWhat находится в отдельной строке, он ведет себя так, как ожидалось: http://jsfiddle.net/paislee/Y4WE8/