JavaScript-Objektdefinition
- Vorherige Seite JS-Geschichte
- Nächste Seite JS-Objekt-Attribute
在JavaScript中,对象是王。如果您理解了对象,就理解了JavaScript。
在JavaScript中,几乎“所有事物”都是对象。
- 布尔是对象(如果用 new 关键词定义)
- 数字是对象(如果用 new 关键词定义)
- 字符串是对象(如果用 new 关键词定义)
- 日期永远都是对象
- 算术永远都是对象
- 正则表达式永远都是对象
- 数组永远都是对象
- 函数永远都是对象
- 对象永远都是对象
所有JavaScript值,除了原始值,都是对象。
JavaScript原始值
原始值指的是没有属性或方法的值。
原始数据类型指的是拥有原始值的数据。
JavaScript定义了5种原始数据类型:
- 字符串
- 数字
- 布尔
- null
- undefined
原始值是一成不变的(它们是硬编码的,因此不能改变)。
假设x = 3.14,您能够改变x的值。但是您无法改变3.14的值。
值 | 类型 | 注释 |
---|---|---|
"Hello" | 字符串 | "Hello"始终是"Hello" |
3.14 | 数字 | 3.14始终是3.14 |
true | 布尔 | true始终是true |
false | 布尔 | false始终是false |
null | null | (object) null始终是null |
undefined | undefined | undefined始终是undefined |
对象是包含变量的变量
JavaScript变量能够包含单个的值:
Beispiel
var person = "Bill Gates";
对象也是变量。但是对象能够包含很多值。
值按照名称 : 值对的形式编写(名称和值以冒号分隔)。
Beispiel
var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};
JavaScript对象是命名值的集合。
对象属性
JavaScript对象中的命名值,被称为属性。
属性 | 值 |
---|---|
firstName | Bill |
lastName | Gates |
age | 62 |
eyeColor | blue |
以名称值对书写的对象类似于:
- PHP中的关联数组
- Python中的字典
- 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 对象:
Beispiel
var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};
空格和折行不重要。对象定义可横跨多行:
Beispiel
var person = { firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue" };
使用 JavaScript 关键词 new
下面的例子也创建了带有四个属性的新的 JavaScript 对象:
Beispiel
var person = new Object(); person.firstName = "Bill"; person.lastName = "Gates"; person.age = 50; person.eyeColor = "blue";
上面的两个例子结果是一样的。无需使用 new Object()
。
Aus Gründen der Einfachheit, Lesbarkeit und Ausführungsgeschwindigkeit verwenden Sie bitte die erste Methode zur Erstellung (Objekttext-Methode).
JavaScript-Objekte sind veränderlich
Objekte sind veränderlich: Sie werden durch Referenzen adressiert, nicht durch Werte.
Wenn person ein Objekt ist, erstellt der folgende Code keine Kopie von person:
var x = person; // Dies erstellt keine Kopie von person.
Objekt x ist nicht Kopie von person. Esdas ist person.x und person sind dasselbe Objekt.
Jegliche Änderung an x wird person ändern, da x und person dasselbe Objekt sind.
Beispiel
var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"} var x = person; x.age = 10; // Dies wird sowohl x.age als auch person.age gleichzeitig ändern
Anmerkung:JavaScript-Variable sind nicht veränderlich. Nur JavaScript-Objekte sind es.
- Vorherige Seite JS-Geschichte
- Nächste Seite JS-Objekt-Attribute