JavaScript 对象

JavaScript 变量是数据值的容器。

这段代码把一个单一值(porsche)赋给名为 car 的变量
var car = "porsche";

对象也是变量。但是对象包含很多值。

下面这段代码把多个值(porsche, 911, white)赋给名为 car 的变量

var car = {type:"porsche", model:"911", color:"white"};

值以名称:值对的方式来书写(名称和值由冒号分隔)。

JavaScript 对象是被命名值的容器。

对象属性

(JavaScript 对象中的)名称:值对被称为属性

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

| 属性 | 属性值 |
| firstName | Bill |
| lastName | Gates |
| age | 62 |
| eyeColor | blue |

对象方法

对象也可以有方法。方法是在对象上执行的动作。方法以函数定义被存储在属性中。

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

方法是作为属性来存储的函数。
var person = {
firstName: "Bill",
lastName : "Gates",
id : 678,
fullName : function() {
return this.firstName + " " + this.lastName;
}
};

this 关键词

在函数定义中,this 引用该函数的“拥有者”。

在上面的例子中,this 指的是“拥有” fullName 函数的 person 对象。换言之,this.firstName 的意思是 this 对象的 firstName 属性。

对象定义

定义(创建)一个 JavaScript 对象:
var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};

对象定义可横跨多行,空格和折行都是允许的:

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

访问对象属性,有两种方式可以访问属性:

objectName.propertyName*

或者
objectName["propertyName"]

//例1
person.lastName;
//例2
person["lastName"];

访问对象方法,可以通过如下语法访问对象方法:

objectName.methodName()
如:name = person.fullName();

如果不使用 () 访问 fullName 方法,则将返回函数定义
name = person.fullName;

方法实际上是以属性值的形式存储的函数定义。

不要把字符串、数值和布尔值声明为对象!

如果通过关键词 "new" 来声明 JavaScript 变量,则该变量会被创建为对象:
var x = new String(); // 把 x 声明为 String 对象
var y = new Number(); // 把 y 声明为 Number 对象
var z = new Boolean(); // 把 z 声明为 Boolean 对象

避免字符串、数值或逻辑对象。他们会增加代码的复杂性并降低执行速度。

你可能感兴趣的:(JavaScript 对象)