JavaScript Nesneler
JavaScript'inizde nesneler kralsın. Nesneleri anlamak, JavaScript anlıyoruz.
JavaScript'inizde neredeyse "everything" bir nesnedir.
- Booleans nesneler olabilir (or primitive data treated as objects)
- Numbers nesneler olabilir (or primitive data treated as objects)
- Strings nesneler olabilir (or primitive data treated as objects)
- Dates hep nesneleri vardır
- Maths her zaman nesneleri vardır
- Regular ifadeler her zaman nesneleri vardır
- Arrays daima nesneleri vardır
- Functions hep nesneleri vardır
- Objects nesnelerdir
JavaScript, tüm değerler, ilkel değerler hariç nesneleridir.
İlkel değerler şunlardır: dizeleri ("John Doe") , sayılar (3.14), true, false, null ve undefined .
Nesneler Değişkenler İçeren Değişkenler vardır
JavaScript değişkenleri tek değerler içerebilir:
Nesneler de değişkenlerdir. Ama nesneleri birçok değer içerebilir.
Değer çiftleri (adı ve bir nokta ile ayrılmış değer) değerleri adı olarak yazılır.
Bir JavaScript nesnesi adında bir değerler topluluğudur
Nesne Özellikleri
Adlandırılmış değerleri JavaScript nesneleri de, özellikler olarak adlandırılır.
özellik | değer |
---|---|
firstName | John |
lastName | Doe |
age | 50 |
eyeColor | blue |
adı değer çiftleri olarak yazılmış nesneleri benzer:
- PHP'de ilişkilendirilebilir diziler
- Python Sözlükler
- C karma tablolar
- Java Hash haritalar
- Içinde Hash'ler Ruby ve Perl
Nesne Yöntemleri
Yöntemler nesneler üzerinde yapılabilir eylemlerdir.
Nesne özellikleri ilkel değerleri, diğer nesneleri ve işlevleri ikisi de olabilir.
Bir nesne yöntemi, bir fonksiyon tanımlama ihtiva eden, bir özelliktir.
özellik | değer |
---|---|
firstName | John |
lastName | Doe |
age | 50 |
eyeColor | blue |
fullName | function() {this.firstName + geri " " + this.lastName;} |
JavaScript nesneleri adında değerler denilen özellikleri ve yöntemleri için kaplardır.
Bir sonraki bölümlerde yöntemler hakkında daha fazla öğreneceksiniz.
JavaScript Nesne Oluşturmak
JavaScript ile, tanımlamak ve kendi nesneleri oluşturabilirsiniz.
Yeni nesneler yaratmak için farklı yollar vardır:
- Bir nesne değişmezi kullanan, tanımlama ve tek bir nesne oluşturmak.
- Define ve anahtar kelime yeni çalışmaya sahip, tek bir nesne oluşturmak.
- bir amacı, kurucu tanımlar ve daha sonra yapılan türdeki nesneleri oluşturmak.
ECMAScript'e 5'te, bir nesne de işlev ile oluşturulabilir Object. create() Object. create() .
Bir Nesne Değişmez kullanma
Bu bir JavaScript Nesnesi oluşturmak için en kolay yoludur.
tanımlamak ve bir açıklamada, bir nesne oluşturmak, hem bir nesne değişmezi sizi kullanma.
Değer çiftleri: bir amacı değişmez adı listesidir (like age:50 ) küme parantezi içinde {} .
Aşağıdaki örnek dört özelliklere sahip yeni bir JavaScript nesnesi oluşturur:
Spaces ve satır sonları önemli değildir. Bir nesne tanım çok sayıda satıra yayılabilirler:
JavaScript Kelimeler Yeni Kullanılması
Aşağıdaki örnek de dört özelliklere sahip yeni bir JavaScript nesnesi oluşturur:
Örnek
var
person = new Object();
person.firstName = "John";
person.lastName = "Doe";
person.age = 50;
person.eyeColor = "blue";
Kendin dene " iki örnek yukarıda tam olarak aynı şeyi. Kullanmaya gerek yoktur new Object() .
Basitlik, okunabilir ve işlem hızı için, ilk bir kullanımı (the object literal method) .
Bir Nesne Oluşturucu kullanma
Yukarıdaki örnekler pek çok durumda sınırlıdır. Onlar sadece tek bir nesne oluşturmak.
Bazen bir sahip olmak ister "object type" bir tür çok sayıda nesne oluşturmak için de kullanılabilir.
Bir oluşturmak üzere standart bir şekilde "object type" bir amacı yapıcı işlevi kullanmaktır:
Örnek
function person(first, last, age, eye) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eye;
}
var
myFather = new person("John", "Doe", 50, "blue");
var myMother = new person("Sally", "Rally", 48, "green");
Kendin dene " Yukarıdaki fonksiyonu (person) bir amacı, kurucudur.
Eğer bir nesne yapıcı sahip olduktan sonra, aynı türde yeni nesneler oluşturabilirsiniz:
var myFather = new person("John", "Doe", 50, "blue");
var myMother = new person("Sally", "Rally", 48, "green");
this Kelime
JavaScript denilen şey ise this , o nesnedir "owns" JavaScript kodu.
Değeri this bir fonksiyonu olarak kullanıldığında, bu amacı, "owns" bir işlev.
Değeri this , bir nesne kullanıldığında, nesne kendisidir.
this bir nesne yapıcı anahtar kelime bir değeri yoktur. Yeni nesne için yalnızca bir alternatiftir.
Değeri this yapıcı bir nesne oluşturmak için kullanıldığı zaman yeni bir nesne haline gelecektir.
Bu değişken olmadığını unutmayın. Bu bir anahtar kelimedir. Sen değerini değiştiremezsiniz this .
Dahili JavaScript Constructor'u
JavaScript yerli nesneler için yerleşik bir oluşturucusu yok:
Örnek
var x1 = new Object(); // A new Object object
var x2 = new String(); // A new String object
var x3 = new Number(); // A new Number object
var x4 = new Boolean() // A new Boolean object
var x5 = new Array(); // A new Array object
var x6 = new RegExp(); // A new RegExp object
var x7 = new Function(); // A new Function object
var x8 = new Date(); // A new Date object
Kendin dene " Math() nesne listesinde değildir. Matematik küresel nesnedir. Yeni anahtar kelime Math üzerinde kullanılamaz.
Biliyor musun?
Gördüğünüz gibi, JavaScript ilkel veri türleri String, Number ve Boole sürümlerini nesne vardır.
karmaşık nesneleri oluşturmak için hiçbir sebep yoktur. İlkel değerler çok daha hızlı yürütmek.
Ve yeni kullanmak için hiçbir neden yoktur Array() . Bunun yerine, dizi değişmezleri kullanın: []
Ve yeni kullanmak için hiçbir neden yoktur RegExp() . Bunun yerine desen değişmezleri kullanın: /()/
Ve yeni kullanmak için hiçbir neden yoktur Function() . Bunun yerine işlev ifadeleri kullanın: function () {} .
Ve kullanmak için hiçbir neden yoktur new Object() . Bunun yerine bir amacı değişmezleri kullanın: {}
Örnek
var x1 = {}; // new object
var x2 = ""; // new primitive string
var x3 = 0; // new primitive number
var x4 = false; // new primitive boolean
var x5 = []; // new array object
var x6 = /()/ // new regexp object
var x7 = function(){}; // new function object
Kendin dene " JavaScript Nesneler Değişken olan
Nesneler değiştirilebilir: Bunlar değeri, referans ile bu ele alınmaktadır.
y bir nesne ise, aşağıdaki deyim y bir kopyasını oluşturmaz:
var x = y; // This will not create a copy of y.
Nesnenin x, y bir kopyası değildir. Bu y. X ve aynı nesne y noktaları de.
x ve y aynı nesne için y herhangi bir değişiklik için, x değişecektir.
Örnek
var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}
var x = person;
x.age = 10; // This will change both x.age and person.age
Kendin dene "