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