Wie erstelle ich eine Objekteigenschaft aus einem Variablenwert in JavaScript?



Answers

ES6 führt berechnete Eigenschaftsnamen ein, die Sie ausführen können

var myObj = {[a]: b};

Hinweis Browser-Unterstützung ist derzeit vernachlässigbar.

Question

Ich möchte 'myObj' eine neue Eigenschaft hinzufügen, sie 'string1' nennen und ihr den Wert 'string2' geben, aber wenn ich es mache, gibt sie 'undefined zurück:

var myObj = new Object;
var a = 'string1';
var b = 'string2';
myObj.a = b;

alert(myObj.string1); //Returns 'undefined'
alert(myObj.a); //Returns 'string2'

Mit anderen Worten: Wie erstelle ich eine Objekteigenschaft und gebe ihr den Namen, der in der Variablen gespeichert ist, aber nicht den Namen der Variablen selbst?




Du könntest das einfach benutzen:

function createObject(propName, propValue){
    this[propName] = propValue;
}
var myObj1 = new createObject('string1','string2');

Alles, was Sie als ersten Parameter übergeben, ist der Name der Eigenschaft und der zweite Parameter ist der Wert der Eigenschaft.




Ecu, wenn Sie myObj.a tun, dann sucht es nach der Eigenschaft namens a von myObj. Wenn Sie myObj[a] =b tun, myObj[a] =b es nach der Eigenschaft a.valueOf() von myObj.




Sie können eine Variable nicht verwenden, um über eine Punktnotation auf eine Eigenschaft zuzugreifen, sondern stattdessen die Array-Notation.

var obj= {
     'name' : 'jroi'
};
var a = 'name';
alert(obj.a); //will not work
alert(obj[a]); //should work and alert jroi'



Related