Nesne özelliklerine erişmek için iki farklı gösterim vardır
- Nokta gösterimi: myObj.prop1
- Köşeli ayraç notasyonu: myObj ["prop1"]
Nokta gösterimi hızlı ve kolaydır, ancak gerçek özellik adını açıkça kullanmanız gerekir . İkame, değişken vb. Yok.
Köşeli ayraç notasyonu açık uçlu. Bir dize kullanır, ancak herhangi bir yasal js kodu kullanarak dize üretebilirsiniz. Dizeyi değişmez olarak belirtebilirsiniz (bu durumda nokta gösterimi daha kolay okunur) veya bir değişken kullanabilir veya bir şekilde hesaplayabilirsiniz.
Yani, bunların hepsi prop1 adlı myObj özelliğini Hello değerine ayarlar :
// quick easy-on-the-eye dot notation
myObj.prop1 = "Hello";
// brackets+literal
myObj["prop1"] = "Hello";
// using a variable
var x = "prop1";
myObj[x] = "Hello";
// calculate the accessor string in some weird way
var numList = [0,1,2];
myObj[ "prop" + numList[1] ] = "Hello";
tuzaklar:
myObj.[xxxx] = "Hello"; // wrong: mixed notations, syntax fail
myObj[prop1] = "Hello"; // wrong: this expects a variable called prop1
tl; dnr : Anahtarı hesaplamak veya referans almak istiyorsanız , parantez gösterimini kullanmalısınız . Anahtarı açık bir şekilde kullanıyorsanız, basit açık kod için nokta gösterimini kullanın .
Not: Başka iyi ve doğru cevaplar var ama ben şahsen JS-the-fly quirkiness ile düşük bir aşina gelen biraz kısa buldum. Bu bazı insanlar için yararlı olabilir.