Разделенный запятыми номер / функция в скобках в JavaScript?
var global = (function(){ return this || (0||eval)('this'); }());
После того, как это было уменьшено:
l=function(){return this||(0,eval)("this")}();
Так что же (0,eval)
Я имею в виду, что делает запятая?
Я играл в консоли Chrome, (0,1)
, (2,1)
, (2,{})
, 2,1
и т. д., он всегда возвращает последний.
1 ответ
Решение
Оператор запятой оценивает оба и всегда возвращает последнее. Как и ты сказал.
Вы можете прочитать о запятой оператора: http://javascriptweblog.wordpress.com/2011/04/04/the-javascript-comma-operator/
Несмотря на то, что я понятия не имею, цель (0||eval)... (0,eval) эквивалентна и на один символ меньше.