2017-07-04 1 views
0

Sagen, ich habe ein Objekt, das sagen, dieMit reservierten Schlüsselwort als Objektschlüssel mit gespreizten Operatoren

const props = { 
    delete: function() { 
     // stuffs 
    }, 
    hello: 'hello', 
    other: 'other', 
} 

Jetzt Operatoren ich Ausbreitung aussieht und etwas tun, wie diese

const {hello, ...otherStuffs} = props; 

Dann für otherStuffs, Ich bekomme immer noch ein Objekt, das eine Kopie von props aber außer dem hello Schlüssel ist.

Aber was, wenn ich nicht den delete Schlüssel des Objekts will? Ich kann nicht das selbe machen wie oben, weil anscheinend delete ein reserviertes Schlüsselwort ist.

const {delete, ...otherStuffs} = props; // error here 

Ich kann aber noch die Schlüssel aus dem Objekt filtern, die nicht gleich zu ‚löschen‘ sind und meine Aufgabe bekommen, aber ist es eine Möglichkeit, dies zu tun Ausbreitung Operatoren?

+0

Objekt Ausbreitung Syntax nicht ES6 ist. – Bergi

Antwort

3

Sie können dies tun, indem Sie die delete-Eigenschaft von props Aliasing. Sie können versuchen, diese

const props = { 
 
    delete: function() { 
 
     console.log("delete"); 
 
    }, 
 
    hello: 'hello', 
 
    other: 'other', 
 
} 
 

 
const {"delete": del, ...otherStuffs} = props; 
 
del();

Referenz: Invalid JavaScript identifier as a property name

+0

Wäre es möglich, ein Symbol zu verwenden? – evolutionxbox

+0

Mit dem Symbol meinst du das neue ES6 Symbol? Wo würdest du es gerne benutzen? –

+0

Als Schlüssel. Wie du eine Schnur. – evolutionxbox

Verwandte Themen