Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.01.2015, 13:21
Интересующийся
Отправить личное сообщение для polin11 Посмотреть профиль Найти все сообщения от polin11
 
Регистрация: 13.01.2015
Сообщений: 10

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

Прокомментируйте логику выполнения
Ответить с цитированием
  #2 (permalink)  
Старый 13.01.2015, 13:39
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

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

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

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

Последний раз редактировалось tsigel, 13.01.2015 в 14:20.
Ответить с цитированием
  #3 (permalink)  
Старый 13.01.2015, 13:40
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как визуализировать структуру кода? dkudrin Общие вопросы Javascript 2 22.08.2014 19:12
скрыть из исходного кода часть javascript кода. javasc Javascript под браузер 10 12.03.2014 09:32
Рег.выражения, подсветка кода lynch1 Events/DOM/Window 6 17.12.2012 20:04
Удаление участка кода replace Dorian_bs Общие вопросы Javascript 3 23.11.2012 23:19
Пример хорошего кода Shitbox2 jQuery 0 06.10.2012 10:54