Definieren Sie eine Universal / Fallback-Getter-Eigenschaft in JavaScript

9

JavaScript hat Getter mit Object.defineProperty . Also kann ich einen Getter in der Eigenschaft random von window von

definieren %Vor%

Ist es möglich, einen "universellen Getter" für ein bestimmtes Objekt zu definieren, unabhängig von der Objekteigenschaft? Ich suche etwas wie

%Vor%

Kann ich "universal getters" in JavaScript verwenden?

    
Randomblue 13.02.2013, 20:02
quelle

2 Antworten

4

Nein.

Es ist nicht möglich, in ECMAScript 5th edition als zu tun, da diese Operation nicht vorgesehen ist. Obwohl dies nicht explizit angegeben ist, kann man sehen, dass [GetProperty] enthält keine Vorkehrungen für nicht vorhandene Eigenschaften.

Die Getter / Setter in ECMAScript benötigen existierende Eigenschaften und es gibt kein Äquivalent von Rubys method_missing oder Pythons __getattribute__ .

    
user166390 13.02.2013, 20:11
quelle
10

Leider: Nein, ist es nicht.

Es gibt etwas namens Proxy Objekte, die in Gecko 18-basierten Browsern eingeführt wurden

Was würde Ihnen erlauben, solche Dinge zu tun

%Vor%

Aber das ist nicht Standard und immer noch sehr instabil

Übrigens dachte ich ursprünglich, Sie könnten window direkt als lokale Variable in der IIFE verwenden, aber es scheint, dass Sie nicht nur undefined loggen können (warum?), also habe ich das "W"

Hier ein Beispiel zu JSBin

Hinweis: Sie sollten es in Firefox

besuchen     
C5H8NNaO4 14.02.2013 08:15
quelle

Tags und Links