2016-10-09 7 views
2

Was ich brauche, ist eine Funktion zu haben, die jedes Mal, wenn eine Zuweisung genannt wird, durchgeführt, so zum Beispiel, wenn es:Gibt es eine Möglichkeit, einen globalen Setter zu erstellen?

function assigned(nameL, valL, nameR, valR){ 
} 

I:

var a = b; 
c = d; 
// or even 
for(var i=3...){} 

ich eine Funktion wie haben könnte Ich habe keine großen Hoffnungen dafür, ich erkenne auch an, dass es die Dinge sehr beschleunigen kann, aber ich brauche es nur für Debugging-Zwecke.

+0

Nein. Aber es gibt Proxies: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Proxy – undefined

+0

@ unlucky13, ich denke, das ist der nächstgelegene! Das wird klappen. Kannst du den Kommentar zu einer Antwort machen, die ich annehmen kann? – shal

Antwort

2

Gibt es eine Möglichkeit, eine globale Setter gehen zu schaffen?

Nr

ECMAScript2015 stellt Proxy objects, die Sie „Meta-Programmierung“ erlaubt, zu tun, aber es funktioniert nicht so, wie Sie wollen.

Das Proxy-Objekt wird verwendet, um benutzerdefiniertes Verhalten für grundlegende Operationen zu definieren (z. B. Eigenschaftensuche, Zuweisung, Aufzählung, Funktionsaufruf usw.).

+0

Ungeachtet der Tatsache, dass es nicht 100% was ich will, zumindest erlaubt es mir, die Zuweisung von beliebigen Variablen zu verfolgen. Vielen Dank. – shal

+1

@shal Sie sind herzlich willkommen! – undefined

0

Object.defineProperty(window, "varname", {set : callbackfunction}}; ist der Weg link

+0

Ich wusste davon. Ich meine, wie man für jede Variable einen Setter erstellt, sogar für diejenigen, die man nicht kennt? Sogar diejenigen, die an Ort und Stelle erklärt werden, wie "var a = b"? – shal

Verwandte Themen