Wpis z mikrobloga

#javascript #webdev

Zrobiłem CustomEvent i dodałem nasłuch do document.body ale wolałbym nie dodawać tego nasłuchu do elementu DOM.

Np. Event AudioProcessingEvent da się dodać do ScriptProcessorNode czyli nie do elementu DOM.

Na takiej samej zasadzie chciałbym dodać Event do własnego obiektu.

Jak to zrobić?
  • 18
Na takiej samej zasadzie chciałbym dodać Event do własnego obiektu.


@look997: do ktorego konkretnie obiektu? Bo obiekty DOM to feneralnie zwykle obiekty sa tylko reprezentatywne w HTML.
@karer: Bzdura, obiekty DOM są obiektami egzotycznymi i wspierają rzeczy jakie się zwykłym obiektom nie śniły, czyli np. weak references czy settery niewidoczne dla getOwnPropertyDescriptor.
Bzdura, obiekty DOM są obiektami egzotycznymi i wspierają rzeczy jakie się zwykłym obiektom nie śniły, czyli np. weak references czy settery niewidoczne dla getOwnPropertyDescriptor.


@Ginden: podaj mi przyklad prosze. Tylko pamietaj zeby ten setter nie byl w prototypie tylko w obiekcie. Jesli bedzie w prototypie to nie jest "Own" wiec nie bedzie widoczny. Prosze podaj mi to w DOMie. Jesli nie podasz to udowodnisz ze sam piszesz zwykle bzdury.

Działa dla
@karer: No właśnie a ty napisałeś że DOM to generalnie HTML. A jednak nie tylko.
No słowo "generalnie" trochę rozmywa to co napisałeś.

Dodałem do window, też działa na nim addEventListener.

A jak są rozwiązane wydarzenia w Workerach?
podaj mi przyklad prosze.

@karer: Weak references - MutationObserver.
Proxy:

(function(){
'use strict';
const list = document.querySelectorAll('*');
list[list.length+1]=3
}())
Specjalne typeof:

typeof document.all === 'undefined';
document.all+'' === undefined+'' // false
Co setterów - fix na nie poszedł w Chrome dopiero w kwietniu poprzedniego roku - https://developers.google.com/web/updates/2015/04/DOM-attributes-now-on-the-prototype-chain Obecnie już ich nie ma.
No właśnie a ty napisałeś że DOM to generalnie HTML. A jednak nie tylko.

No słowo "generalnie" trochę rozmywa to co napisałeś.


@look997: napisalem ze DOM to generalnie zwykle obiekty sa. Nie napisalem ze DOM to HTML. Wymyslasz cos sobie.

A jak są rozwiązane wydarzenia w Workerach?


@look997: w jakich workerach?

Specjalne typeof:

typeof document.all === 'undefined';

document.all+'' === undefined+'' // false


@Ginden: i uwazasz ze nie ma settera
i uwazasz ze nie ma settera i gettera na "all"? A zagladales do proto? Sorry ale document powstaje z proto i z tamtad sa te settery/gettery wiec nie sa one OwnProperty. Poszperaj.

@karer: Masz problemy z czytaniem ze zrozumieniem - pokazałem, że obiekty DOM są egzotyczne, np. document.all jest obiektem, który ma nadpisany rezultat typeof.

mozesz wpisac zwykle [2,3,4] i tez nie wywali bledu.

Właśnie, nie wywali. A ten kod
Masz problemy z czytaniem ze zrozumieniem - pokazałem, że obiekty DOM są egzotyczne, np. document.all jest obiektem, który ma nadpisany rezultat typeof.


@Ginden: pokazales tylko ze instrukcja typeof zwraca undefined. Nie wykazales NICZEGO odnosnie tego ze jest to nadpisanie czegokolwiek.

Właśnie, nie wywali. A ten kod wywali.


@Ginden: mi nie wywalil twoj kod bledu.

Świetnie. I co z tego, skoro pisałem o tym, że MutationObservery używają weak references


@Ginden: