JavaScript-objektin määrittely

JavaScriptissä objekti on kuningas. Jos ymmärrät objektin, ymmärrät JavaScriptin.

JavaScriptissä lähes "kaikki" on objekti.

  • Totuusarvo on objekti (jos käytetään) new (avainsana määrittely)
  • Luku on objekti (jos käytetään) new (avainsana määrittely)
  • Merkkijono on objekti (jos käytetään) new (avainsana määrittely)
  • Päivämäärät ovat aina objekteja
  • Aritematiikka on aina objekti
  • Säännölliset lausekkeet ovat aina objekteja
  • Taulukot ovat aina objekteja
  • Funktiot ovat aina objekteja
  • Objektit ovat aina objekteja

Kaikki JavaScript-arvot, paitsi alkuperäisarvot, ovat objekteja.

JavaScript-alkuperäisarvot

AlkuperäisarvoTarkoittaa arvoja, joilla ei ole ominaisuuksia tai menetelmiä.

AlkuperäistyyppiTarkoittaa tietoja, joilla on alkuperäisarvo.

JavaScript määrittää 5 alkuperäistyyppiä:

  • string
  • number
  • boolean
  • null
  • undefined

Alkuperäiset arvot ovat muuttumattomia (ne ovat koodattuja, joten niitä ei voi muuttaa).

Oletetaan, että x = 3.14, voit muuttaa x-arvoa. Mutta et voi muuttaa 3.14-arvoa.

Tyyppi Kommentit
"Hello" string "Hello" on aina "Hello"
3.14 number 3.14 on aina 3.14
true boolean true on aina true
false boolean false on aina false
null null (objekti) null on aina null
undefined undefined undefined on aina undefined

Objektit ovat muuttujia, jotka sisältävät muuttujia

JavaScript-muuttujat voivat sisältää yksittäisiä arvoja:

Esimerkki

var person = "Bill Gates";

Kokeile itse

Objektit ovat myös muuttujia. Mutta objektit voivat sisältää monia arvoja.

Arvot järjestetään,

Esimerkki

var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};

Kokeile itse

JavaScript-objektit kirjoitetaan:Nimiarvonimikokoelma.

Objektiominaisuudet

JavaScript-objektin nimetut arvot kutsutaan:属性

属性
firstName Bill
lastName Gates
age 62
eyeColor blue

Nimiarvo-pareja kirjoitetut objektit ovat esimerkiksi:

  • PHP:n assosiaatiotaulukko
  • Pythonissa oleva sanakirja
  • C 中的哈希表
  • Java 中的哈希映射
  • Ruby 和 Perl 中的散列

对象方法

方法是可以在对象上执行的动作

对象属性可以是原始值、其他对象以及函数。

对象方法是包含函数定义的对象属性。

属性
firstName Bill
lastName Gates
age 62
eyeColor blue
fullName function() {return this.firstName + " " + this.lastName;}

JavaScript 对象是被称为属性和方法的命名值的容器。

您将在下一章中学到更多有关方法的知识。

创建 JavaScript 对象

通过 JavaScript,您能够定义和创建自己的对象。

有不同的方法来创建对象:

  • 定义和创建单个对象,使用对象文字。
  • 定义和创建单个对象,通过关键词 new。
  • 定义对象构造器,然后创建构造类型的对象。

在 ECMAScript 5 中,也可以通过函数 Object.create() 来创建对象。

使用对象字面量

这是创建对象最简答的方法。

使用对象文字,您可以在一条语句中定义和创建对象。

对象文字指的是花括号 {} 中的名称:值对(比如 age:62)。

下面的例子创建带有四个属性的新的 JavaScript 对象:

Esimerkki

var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};

Kokeile itse

空格和折行不重要。对象定义可横跨多行:

Esimerkki

var person = {
    firstName:"Bill",
    lastName:"Gates",
    age:62,
    eyeColor:"blue"
};

Kokeile itse

使用 JavaScript 关键词 new

下面的例子也创建了带有四个属性的新的 JavaScript 对象:

Esimerkki

var person = new Object();
person.firstName = "Bill";
person.lastName = "Gates";
person.age = 50;
person.eyeColor = "blue"; 

Kokeile itse

上面的两个例子结果是一样的。无需使用 new Object()

Yksinkertaisuuden, luettavuuden ja suorituskyvyn vuoksi käytä ensimmäistä luomismenetelmää (objektin tekstimenetelmää).

JavaScript-objektit ovat muuttuvia

Objektit ovat muuttuvia: ne osoittavat osoitteisiin, ei arvoihin.

Jos person on objekti, seuraava lause ei luo personin kopiota:

var x = person;  // Tämä ei luo personin kopiota.

objekti x ei ole personin kopio. Seon person.x ja person ovat saman objektin kanssa.

Kaikki x:ään tehtävät muutokset muuttavat myös personia, koska x ja person ovat samanlaisia objekteja.

Esimerkki

var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"}
var x = person;
x.age = 10;           // Tämä muuttaa sekä x.age että person.age

Kokeile itse

Huomautus:JavaScript-muuttujat eivät ole muuttuvia. Vain JavaScript-objektit ovat sitä.