09.10.2013, 16:08
|
Профессор
|
|
Регистрация: 27.04.2012
Сообщений: 1,410
|
|
конструкция (0,eval)
Собственно вопрос в названии. Вот увидел в одной либе(tod.js) такую конструкцию: (0,eval)('this'). И у меня сразу такой вопрос, как это понимать? первый раз вижу..
я так понял (0,eval) - это функция, а ('this') - параметры вызываемой\вызванной функции..
но как понять именно (0,eval) ???
|
|
09.10.2013, 16:10
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
Сообщение от skrudjmakdak
|
но как понять именно (0,eval) ???
|
никак, это просто конструкция сбивающая с толку... Наверно сделано для запутывания специально.
|
|
09.10.2013, 16:13
|
Профессор
|
|
Регистрация: 27.04.2012
Сообщений: 1,410
|
|
угу, понятно.. удалю нафиг, чеб не мешалась
|
|
09.10.2013, 16:18
|
Профессор
|
|
Регистрация: 12.04.2010
Сообщений: 557
|
|
тут использована малоизвестная операция ","
т.е. выражение (a,b,c,....,z) возвращает значение z - последнего элемента в наборе.
в данном случае вернулось eval - функция, которая и вызвалась для 'this', вернув значение this.
вывод: (0,eval)('this') можно заменить на this
|
|
09.10.2013, 16:23
|
Профессор
|
|
Регистрация: 27.04.2012
Сообщений: 1,410
|
|
Яростный Меч, а польза от такой операции, если и так известно что будет возвращен последний элемент?
|
|
19.11.2013, 11:04
|
Новичок на форуме
|
|
Регистрация: 19.11.2013
Сообщений: 4
|
|
Сообщение от skrudjmakdak
|
Яростный Меч, а польза от такой операции, если и так известно что будет возвращен последний элемент?
|
Читайте тут.
http://stackoverflow.com/questions/1...20023#14120023
|
|
19.11.2013, 12:06
|
|
Профессор
|
|
Регистрация: 17.01.2013
Сообщений: 887
|
|
эх, костыли то какие(
|
|
20.11.2013, 10:37
|
Новичок на форуме
|
|
Регистрация: 19.11.2013
Сообщений: 4
|
|
Сообщение от animhotep
|
эх, костыли то какие(
|
Как прокомментировал автор knockoutjs - "это надежный способ получить ссылку на глобальный объект"
var window = this || (0, eval)('this');
так что думать вам использовать это или нет)
|
|
20.11.2013, 10:39
|
Новичок на форуме
|
|
Регистрация: 19.11.2013
Сообщений: 4
|
|
Вот еще пример:
(function(undefined){
var window = this || (0, eval)('this'),
document = window['document'],
navigator = window['navigator'],
jQuery = window["jQuery"],
JSON = window["JSON"];
// ...
|
|
20.11.2013, 18:29
|
Профессор
|
|
Регистрация: 18.11.2013
Сообщений: 275
|
|
Сообщение от Яростный Меч
|
тут использована малоизвестная операция ","
т.е. выражение (a,b,c,....,z) возвращает значение z - последнего элемента в наборе.
в данном случае вернулось eval - функция, которая и вызвалась для 'this', вернув значение this.
вывод: (0,eval)('this') можно заменить на this
|
ну это он я думаю и так понял, он не понял зачем)
Сообщение от Define
|
"это надежный способ получить ссылку на глобальный объект"
|
а я вот так получаю, и это быстрее чем ивал, но это не важно)
(function(){return this}())
^______^
к слову, некоторые еще undefined пот так получают
(void 0)
Последний раз редактировалось Maxmaxmaximus3, 20.11.2013 в 18:33.
|
|
|
|