Size: a a a

JavaScript Developers

2019 July 26

DM

Daniel Manasov in JavaScript Developers
источник

NO

Nikita Omen in JavaScript Developers
привет. такая проблема:
у меня объявляется переменная-функция где-то в вакууме, там в this.q пушатся параметры.
Далее, загружается библиотека и там у меня происходит такое же присваивание, если переменная undefined
затем я хочу как-то получить this.q. есть идеи?
(эта логика взята у google analytics скрипта)

https://jsfiddle.net/5bqf0t81/2/ - код
источник

АД

Адылбек Джороев in JavaScript Developers
Nikita Omen
привет. такая проблема:
у меня объявляется переменная-функция где-то в вакууме, там в this.q пушатся параметры.
Далее, загружается библиотека и там у меня происходит такое же присваивание, если переменная undefined
затем я хочу как-то получить this.q. есть идеи?
(эта логика взята у google analytics скрипта)

https://jsfiddle.net/5bqf0t81/2/ - код
А заретернуть?)
источник

АД

Адылбек Джороев in JavaScript Developers
var a = window['a'] || function () {
(this.q = this.q || []).push(arguments);
       return this.q;
};
const arr = a('test');
console.log(arr);
источник

АД

Адылбек Джороев in JavaScript Developers
Nikita Omen
привет. такая проблема:
у меня объявляется переменная-функция где-то в вакууме, там в this.q пушатся параметры.
Далее, загружается библиотека и там у меня происходит такое же присваивание, если переменная undefined
затем я хочу как-то получить this.q. есть идеи?
(эта логика взята у google analytics скрипта)

https://jsfiddle.net/5bqf0t81/2/ - код
Или нельзя рефакторить код?
источник

NO

Nikita Omen in JavaScript Developers
ну это условно гугл аналитика, и я не могу к ним в код залезть
источник

NO

Nikita Omen in JavaScript Developers
по сути я хочу подписаться на ивенты, которые отсылает гугл аналитика
источник

VL

Vladislav Laptev in JavaScript Developers
bind?
источник

DM

Daniel Manasov in JavaScript Developers
+
источник

АД

Адылбек Джороев in JavaScript Developers
Он типа не имеет доступа к этому коду
источник

VL

Vladislav Laptev in JavaScript Developers
К обьекту то он имеет доступ
источник

АД

Адылбек Джороев in JavaScript Developers
Ну тогда уж Proxy)
источник

АД

Адылбек Джороев in JavaScript Developers
Nikita Omen
по сути я хочу подписаться на ивенты, которые отсылает гугл аналитика
А ты уверен, что нет готового API?
источник

NO

Nikita Omen in JavaScript Developers
я пишу свой коллектор на основе гугл аналитики, поэтому нет апи)
источник

NO

Nikita Omen in JavaScript Developers
Vladislav Laptev
К обьекту то он имеет доступ
это же не объект. это функция. arguments в массив q передаются вызовом функции window[‘a’](…args)
источник

АД

Адылбек Джороев in JavaScript Developers
Nikita Omen
это же не объект. это функция. arguments в массив q передаются вызовом функции window[‘a’](…args)
Тогда как вариант - заманкипатчить
источник

NO

Nikita Omen in JavaScript Developers
кажется я разобрался %)
источник

VL

Vladislav Laptev in JavaScript Developers
Nikita Omen
кажется я разобрался %)
у нас на стак оверфлоу за такое скейтбордами били
источник

АД

Адылбек Джороев in JavaScript Developers
Vladislav Laptev
у нас на стак оверфлоу за такое скейтбордами били
ахахах хД
источник

NO

Nikita Omen in JavaScript Developers
да я код не правильно подсмотрел. в итоге там все просто
https://jsfiddle.net/s6rb93kg/7/
источник