Nesneler

Nesneler, her birinin ayrı bir veri türünün primitive, kritik tek bir veri türü olan bir veri türüdür. fark: İlkellerin aksine, nesneler değişebilir. Bir nesne veri içerebilir değişken gibi tanımlayıcılarla ilişkilidir ancak object verilerini korur veri türü ne olursa olsun.

Temel elemanların yanı sıra tüm JavaScript değerleri nesnedir. Çünkü ilkel düz değerler, aşağıdaki nedenden dolayı nesneye benzer davranış prototip devralma, JavaScript'in etkili bir şekilde nesnelerden oluştuğunu söyler.

Nesne değişmez değeri, sıfır veya daha fazla anahtar/değer çiftini çevreleyen bir çift küme parantezidir "özellikler", "özellikler" içerebilir.

{
    "myProperty" : true
}

Mülk anahtarları herhangi bir sembol veya string Örneğin, tanımlayıcı atarken olduğu gibi özellik anahtarı olarak kullanılan dizelerin tahmin edilebilir olması ve açıklayıcı:

let carAttributes = {
    "color" : "red"
};

carAttributes
> Object { color: "red" }

Mülk anahtarları için tek (') veya çift tırnak işareti (") dizesi değişmez değeri gerekir, düz şablon:

let carAttributes = {
    `keyString` : false
};
> Uncaught SyntaxError: expected property name, got template literal

Mülk değerleri herhangi bir veri türünde olabilir. Bir nesnenin özellikleri kendileri şunları içerir:

let myObject = {
    'key' : {
        'subkey' : true,
        'othersubkey' : false
    }
};

myObject;
> Object { key: Object { subkey: true, othersubkey: false } }

Bir özelliğin değeri fonksiyon olduğunda, bu özelliğe "yöntem" adı verilir.

const myObject = {
    "myProperty" : true,
    myMethod() {
        console.log( "This is a method." );
    }
}

myObject.myProperty;
> true

myObject.myMethod();
> "This is a method."

Ayrıca, new anahtar kelimesini kullanarak bir nesne de oluşturabilirsiniz:

let myObject = new Object();

Önceki örneklerde, yeni oluşturulan nesne değişmez değerleri atandı kullanabilirsiniz. Diğer veri türlerinde olduğu gibi tanımlayıcısı olmayan bir nesne bulmanız gerekir. Ancak nesne değişmez değeri, karışıklığa yol açabileceği herhangi bir bağlamda parantez gerektirir küme ayracı söz dizimini ({}) paylaştığından blok ifadesi için kullanılır. Bir değişkenin başlatılması için hiçbir zaman bu gerekmez.

{ "value" : 2 }
> Uncaught SyntaxError: unexpected token: ':'

({ "value" : 2 })
> Object { value: 2 }

let valObj = { "value" : 2 };

valObj;
> Object { value: 2 }

Temel elemanlardan farklı olarak, kaliteyi temel alan new Object() kullanarak bir nesne oluşturabilir ve bir nesne değişmez değeri oluşturabilirsiniz. Çünkü her iki durumda da sonuç, Object prototipi. Ancak ikisi arasında pratik bir fark vardır. söz dizimleri.

new anahtar kelimesi, daha sonra veriyle doldurulacak boş bir nesne tanımlamalıdır:

let myObject = new Object();

myObject.booleanValue = true;
myObject.stringValue = "My string.";

Nesne değişmez değeri, oluşturulduktan sonra verilerle doldurulabilir:

let myObject = {
    'booleanValue' : true,
    'stringValue' : "My string."
};

Pratikte çok az kullanıldığı halde, new Object() basit bir öğe haline getirmek için kullanılabilir Veri değerlerini, kurucu ile birlikte new anahtar kelimesi işlevini kullanın. Örneğin, aşağıdaki kural işlevsel olarak new Number( 10 ):

let myObject = new Object( 10 );

myObject;
> Number { 10 }

null ve undefined değerleri, işlevsel olarak aynı olan boş bir nesneyle sonuçlanır bir bağımsız değişken sağlamadan new Object() yöntemini çağırmaktır.

Bağımsız değişken nesneyi aktarırken bir nesne değişmez değerini new Object() öğesine iletme değerini değiştirmeden ekleyin:

let myObject = new Object( { myValue : 10 } );

myObject;
> Object { myValue: 10 }

Temel değerler için kurucu kullanmada olduğu gibi nesneler için kurucular kullanma nesne değişmez notasyonunu kullanmaya göre nadiren bir avantaj sağlar. Oluştururken bile daha sonra değerlerle doldurulacak boş nesneler varsa geliştiriciler, basitlik açısından bire bir kullanıyoruz.

Öğrendiklerinizi sınayın

Bir nesnenin özelliklerini ayarlamak için ne tür gösterim türlerini kullanabilirsiniz?

Nokta gösterimi
Ayraç gösterimi
Dönem gösterimi
Çizgi gösterimi

Değeri almak için doğru söz dizimi aşağıdakilerden hangisidir? / myProp

myObj["myProp"];
myObj{"myProp"};
myObj("myProp");