svojstva - Kako stvoriti svojstvo objekta iz vrijednosti varijable u JavaScriptu?


Želim dodati novu svojinu u 'myObj', nazvati je 'string1' i dati joj vrijednost 'string2', ali kada to učinim vraća 'undefined:'

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

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

Drugim riječima: Kako stvoriti svojstvo objekta i dati mu ime pohranjeno u varijabli, a ne ime same varijable?

Odgovor #1

ES6 uvodi izračunate nazive svojstava, što vam omogućuje da učinite

var myObj = {[a]: b};

Odgovor #2

Postoji točkasta notacija i zagradična notacija

myObj[a] = b;

Odgovor #3

Točka notacija i svojstva su ekvivalentni. Dakle, postigli biste to ovako:

// const myObj = new Object();
const myObj = {};
const a = 'string1';
myObj[a] = 'whatever';
alert(myObj.string1);

(alerts "whatever")

Odgovor #4

Ecu, ako napišeš myObj.a, tada traži svojstvo pod imenom a u myObj. Ako napišeš myObj[a]=b, tada traži svojstvo a.valueOf() u myObj.

Povezani članci