7
Почему следующий код действителен Код Javascript?Почему этот код действителен: «(1, eval) ('this')"
var global = (1,eval)('this');
alert(global);
Почему следующий код действителен Код Javascript?Почему этот код действителен: «(1, eval) ('this')"
var global = (1,eval)('this');
alert(global);
Это потому, что comma operator возвращает второй операнд (и оценивает оба).
код в ваш вопрос эквивалентен:
1;
var global = eval('this');
alert(global);
печально, но это правда ... – powtac
Можете ли вы объяснить или может быть какая-то связь будет полезно тоже, действительно путают. –
@Sheikh, я ссылался на документацию MDN в своем ответе :) В принципе, '(1, eval)' применяет оператор запятой ',' к '1' и' eval'. Оператор оценивает «1», затем оценивает и возвращает «eval». Следовательно, 'foo = (1, eval) (что-то)' эквивалентно '1; foo = eval (что-то); '. –