- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
(function innerScope(){
function hi() {
var data = {};
data.importantData = {foo:1, bar:2};
return data;
}
hi();
})();
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−51
(function innerScope(){
function hi() {
var data = {};
data.importantData = {foo:1, bar:2};
return data;
}
hi();
})();
Есть огромный минифицированный жс-файл. Где-то в дебрях проскакивают нужные мне данные в расшифрованном виде (знаю где именно).
Как можно навесить хук чтобы отследить когда обращаются к полю с именем 'importantData'?
Подменить глобальные объекты не вариант, т.к. всё обёрныто в замыкание.
Может как-то подменой Function.prototype.call или Object.prototype.valueOf?
CrashTesterAnusov 18.09.2016 23:38 # −63
barop 19.09.2016 01:30 # 0
bagor 19.09.2016 13:28 # −65
bagor 19.09.2016 13:29 # −65
qwemaze 19.09.2016 06:45 # 0
Только полная замена оригинального скрипта на модифицированный.
qwemaze 19.09.2016 06:49 # 0
Если тебе это надо одноразово выполнить, то дебуггеры есть.
Vindicar 19.09.2016 13:07 # −2
А вот если что-то высунуто наружу... можно попробовать пройти по цепочке.
Но хаки с Object.prototype того не стоят.
1024-- 19.09.2016 13:34 # −2
bagor 19.09.2016 13:31 # −65
GaMeBiT 19.09.2016 16:18 # +1
roman-kashitsyn 19.09.2016 17:01 # +3
А почему не подменой Object.prototype.importantData ? Так, например, каждая запись в importantData будет складывать данные в массив.
dxd 19.09.2016 17:08 # 0
1024-- 19.09.2016 17:41 # +1
Кстати, в консоли хрома протекают абстракции. При выполнении указанного кода important по умолчанию содержит 2 раза по true. При втором и последующих просмотрах - 3 раза по true, при создании объекта true-шек уже семь штук, после первого присваивания указанного поля в important лежит [true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, 3, true, true] (если брали тройку).
inkanus-gray 19.09.2016 18:25 # −2
1024-- 19.09.2016 18:29 # −2
1024-- 19.09.2016 18:35 # 0
Ммм... Автодополнение. Если копипастить important или как 3_14дар жать "ап", то массив не растёт. Если с автодополнением набирать, количество элементов начинает расти.
inkanus-gray 19.09.2016 18:36 # −1
CrashTesterAnusov 19.09.2016 18:43 # −65
bormand 19.09.2016 19:16 # −1
1024-- 19.09.2016 19:27 # −1