2012-03-08 5 views

ответ

10

Это потому, что comma operator возвращает второй операнд (и оценивает оба).

код в ваш вопрос эквивалентен:

1; 
var global = eval('this'); 
alert(global); 
+0

печально, но это правда ... – powtac

+0

Можете ли вы объяснить или может быть какая-то связь будет полезно тоже, действительно путают. –

+1

@Sheikh, я ссылался на документацию MDN в своем ответе :) В принципе, '(1, eval)' применяет оператор запятой ',' к '1' и' eval'. Оператор оценивает «1», затем оценивает и возвращает «eval». Следовательно, 'foo = (1, eval) (что-то)' эквивалентно '1; foo = eval (что-то); '. –

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