JavaScript 对象定义
-
JavaScript对象
在JavaScript中,几乎“一切”都是一个对象。- 布尔值可以是对象(如果使用new关键字定义)
- 数字可以是对象(如果使用new关键字定义)
- 字符串可以是对象(如果使用new关键字定义)
- 日期(Date)总是对象
- 数学(Math)总是对象
- 正则表达式(RegExp)始终是对象
- 数组(Array)总是对象
- 函数(Function)始终是对象
- 对象(Object)总是对象
除原始值之外的所有JavaScript值都是对象。 -
JavaScript原始值
原始值是不具有属性或方法的值。原始数据类型为具有原始值的数据。JavaScript定义了5种原始数据类型:- string
- number
- boolean
- null
- undefined
原始值是不可变的(它们是硬编码的,因此无法更改)。如果x = 3.14,则可以更改x的值。但是你不能改变3.14的值。
值 类型 注释 "Hello" string “Hello”总是“Hello” 3.14 number 3.14总是3.14 true boolean true总是true false boolean false总是false null null (object) null始终为null undefined undefined undefined总是undefined的 -
-
对象属性
JavaScript对象中的命名值称为属性。属性 值 firstName John lastName Doe age 50 eyeColor blue 写为名称值对的对象类似于:- PHP中的关联数组
- Python中的字典
- C中的哈希表
- Java中的哈希映射
- Ruby和Perl中的哈希
-
对象方法
方法是可以在对象上执行的动作。对象属性可以是原始值,其他对象和函数。一个对象的方法是包含一个对象的属性的函数定义。属性 值 firstName John lastName Doe age 50 eyeColor blue fullName function() {return this.firstName + " " + this.lastName;} -
创建JavaScript对象
使用JavaScript,您可以定义和创建自己的对象。有不同的方法来创建新对象:- 使用对象文字定义和创建单个对象。
- 使用关键字new定义并创建单个对象。
- 定义对象构造函数,然后创建构造类型的对象。
在ECMAScript 5中,还可以使用该函数创建对象Object.create()。
使用对象文字创建:
这是创建JavaScript对象的最简单方法。使用对象文字,您可以在一个语句中定义和创建对象。 对象文字是花括号{}内的名称:值对(如age:50)的列表。以下示例创建一个具有四个属性的新JavaScript对象:
尝试一下var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
空格和换行并不重要。对象定义可以跨越多行:
尝试一下var person = { firstName: "John", lastName: "Doe", age: 50, eyeColor: "blue" };
使用JavaScript关键字new:
以下示例还创建了一个具有四个属性的新JavaScript对象:
尝试一下var person = new Object(); person.firstName = "John"; person.lastName = "Doe"; person.age = 50; person.eyeColor = "blue";
上面的两个例子完全相同。没有必要使用new Object()。 为简单起见,可读性和执行速度,请使用第一个(对象文字方法)。
JavaScript对象是可变的
对象是可变的:它们通过引用而不是通过值来传递。如果person是对象,则以下语句将不会创建person的副本:var x = person; // 这不会创建person的副本。
对象x不是person的副本。person和x都是同一个对象。对x的任何更改也会改变person,因为x和person是同一个对象。
尝试一下var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"} var x = person; x.age = 10; // 这将改变x.age和person.age