JS对象定义
在JS中,对象是王,如果理解了对象,就理解了JS
在JS中,几乎“所有事物”都是对象
- 布尔是对象(如用new 关键词定义)
- 数字是对象 (如用new 关键词定义)
- 字符串是对象 (如用new 关键词定义)
- 日期永远是对象
- 算术永远是对象
- 正则表达式永远是对象
- 数组永远是对象
- 函数永远是对象
- 对象永远是对象
所有JS值,除了原始值,都是对象
JS原始值
原始值:
指的是没有属性或方法的值
原始数据类型:
指的是拥有原始值的数据
JS定义了5种原始数据类型:
- string
- number
- boolean
- null
- undefined
原始值是一成不变的,(它们是硬编码的,因此不能改变)
假设: x = 3.14,您能够改变 x 的值。但是您无法改变 3.14 的值。
对象时包含变量的变量
- JS变量能够包含单个的值:
var person = "Bill Gates";
- 对象也是变量,但是对象可以包含很多值
- 值按照 名称:值 对的形式编写
var person = {firstName:"Bill", lastName:"Gates", age:62}
JavaScript 对象是命名值的集合。
对象属性:
定义:
JS对象中的命名值,被称为属性
- 以名称值对书写的对象类似于:
- PHP 中的关联数组
- Python 中的 字典
- C 中的哈希表
- Java中的哈希映射
- Ruby 和 Perl 中的散列
对象方法:
对象属性可以是:
- 原始值
- 其他对象
- 函数
对象方法定义: - 方法是可以在对象上执行的动作
- 对象方法是包含 函数定义的对象属性
- JS对象被称为是属性和方法的命名值的容器
创建JS对象
通过JS,你可以定义和创建自己的对象
有不同的方法来创建对象:
- 定义和创建单个对象,使用对象文字
- 定义和创建单个对象,通过关键词 new
- 定义对象构造器, 然后创建构造类型的对象
在ECMASciript5中:
- 也可以通过函数
Object.create()
来创建对象
使用对象字面量
这是创建对象最简单的方法
使用对象文字,可以在一条语句中定义和创建对象
对象文字:
指的是花括号{}
中的名称:值对 (eg: age:64)
eg:
var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};
- 空格和折行不重要,对象定义可横跨多行
eg:
var person = {
firstName:"Bill",
lastName:"Gates",
age:62,
eyeColor:"blue"
};
使用JS 关键词 new
eg:
创建了带有四个属性的新的 JavaScript 对象:
var person = new Object();
person.firstName = "Bill";
person.lastName = "Gates";
person.age = 50;
person.eyeColor = "blue";
tips:
出于简易性、可读性和可执行速度的考虑,请使用对象文字方法
JS对象时易变的
对象时易变的:
它们通过引用来寻址,而非值
eg:
若person是一个对象,下面语句不会创建person的副本
var x = person; // 这不会创建 person 的副本。
解析:
- 对象x 并非是person的副本,
- 对象x 就是person ,x和person是同一个对象
eg:
对 x 的任何改变都将改变 person,因为 x 和 person 是相同的对象。
var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"}
var x = person;
x.age = 10; // 这将同时改变 both x.age 和 person.age
注释:
JavaScript 变量不是易变的。只有 JavaScript 对象如此。