Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Интересный фрагмент кода (https://javascript.ru/forum/misc/52926-interesnyjj-fragment-koda.html)

polin11 13.01.2015 13:21

Интересный фрагмент кода
 
Наткнулся на интересный и загадочный для меня код
s="constructor";
	s[s][s]('alert("hellow world")')()   //Выводит hellow world

Прокомментируйте логику выполнения

tsigel 13.01.2015 13:39

"".constructor.constructor("console.log(1+1)")()//2

Есть строка (s="constructor").
У строки есть конструктор. У которого в свою очередь тоже есть конструктор, который возвращает функцию, которая эвалит содержит то что было передоно в конструктор конструктора строки :)

Это если на пальцах. Точнее надо лезть в спецификацию.

skrudjmakdak 13.01.2015 13:40

s="constructor";
s - объект-строка, у которого есть методы
s.constructor = s['constructor'] = s[s]
а значит s[s][s] = s.constructor.constructor


Часовой пояс GMT +3, время: 16:47.