Wir können ein DOM-Element modifizieren und zu seinem Prototyp hinzufügen. Wenn wir z. B. nur der Leinwand etwas hinzufügen möchten, tun wir Folgendes:
%Vor%Wir können diese Aktion dann auf einem Canvas-Element ausführen:
%Vor%Ist es möglich, dieser Instanz der Zeichenfläche eine Funktion hinzuzufügen / anzuhängen, ohne den Prototyp von HTMLcanvasElement zu ändern. Ich möchte nur eine Arbeitsfläche, auf der doSomething (...) aufgerufen wurde, um auf die zusätzlichen Methoden zugreifen zu können, nicht auf alle Canvas-Elemente im DOM. Wie kann ich das tun?
Ich habe in meiner doSomething-Funktion Folgendes versucht:
%Vor%Allerdings ist der Prototyp hier nicht definiert.
Shusl hat mir geholfen, die richtige Antwort zu finden. Es war einfacher als ich dachte. In meiner doSomething (args) -Funktion habe ich die Funktion direkt angefügt, anstatt den Objektprototyp zu ändern. Hier ist der vollständige Quellcode:
%Vor%Nun ist foobar nur für die Instanz der Zeichenfläche zugänglich, auf der doSomething aufgerufen wurde. Zur gleichen Zeit muss ich keine Informationen über die Instanz haben.
Mit jQuery können Sie die Eigenschaft data
verwenden.
Tags und Links javascript dom html5 javascript-events