JavaScript-objektin määrittely
- Edellinen sivu JS-historia
- Seuraava sivu JS-objektin-ominaisuudet
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";
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"};
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"};
空格和折行不重要。对象定义可横跨多行:
Esimerkki
var person = { firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue" };
使用 JavaScript 关键词 new
下面的例子也创建了带有四个属性的新的 JavaScript 对象:
Esimerkki
var person = new Object(); person.firstName = "Bill"; person.lastName = "Gates"; person.age = 50; person.eyeColor = "blue";
上面的两个例子结果是一样的。无需使用 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
Huomautus:JavaScript-muuttujat eivät ole muuttuvia. Vain JavaScript-objektit ovat sitä.
- Edellinen sivu JS-historia
- Seuraava sivu JS-objektin-ominaisuudet