конструкция (0,eval)
Собственно вопрос в названии. Вот увидел в одной либе(tod.js) такую конструкцию: (0,eval)('this'). И у меня сразу такой вопрос, как это понимать? первый раз вижу..
я так понял (0,eval) - это функция, а ('this') - параметры вызываемой\вызванной функции.. но как понять именно (0,eval) ??? |
Цитата:
|
угу, понятно.. удалю нафиг, чеб не мешалась :)
|
тут использована малоизвестная операция ","
т.е. выражение (a,b,c,....,z) возвращает значение z - последнего элемента в наборе. в данном случае вернулось eval - функция, которая и вызвалась для 'this', вернув значение this. вывод: (0,eval)('this') можно заменить на this |
Яростный Меч, а польза от такой операции, если и так известно что будет возвращен последний элемент?
|
Цитата:
http://stackoverflow.com/questions/1...20023#14120023 |
эх, костыли то какие(
|
Цитата:
var window = this || (0, eval)('this'); так что думать вам использовать это или нет) |
Вот еще пример:
(function(undefined){ var window = this || (0, eval)('this'), document = window['document'], navigator = window['navigator'], jQuery = window["jQuery"], JSON = window["JSON"]; // ... |
Цитата:
Цитата:
(function(){return this}()) ^______^ к слову, некоторые еще undefined пот так получают (void 0) |
Цитата:
"use strict"; alert(function(){return this}()); без strict: alert(function(){return this}()); |
Часовой пояс GMT +3, время: 21:06. |