Funktionen an einer Instanz eines Elements anhängen

8

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.

    
Sai 29.09.2012, 21:41
quelle

3 Antworten

5

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.

    
Sai 29.09.2012, 21:59
quelle
4

In diesem Fall können Sie direkt ein method an Ihr Canvas-Objekt anhängen

%Vor%     
Anoop 29.09.2012 21:43
quelle
2

Mit jQuery können Sie die Eigenschaft data verwenden.

%Vor%

JSFiddle

    
Austin Brunkhorst 29.09.2012 21:48
quelle