真实生活中的对象、属性和方法
在真实生活中,汽车是一个对象。
汽车有诸如车重和颜色等属性,也有诸如启动和停止的方法:
对象 | 属性 | 方法 |
---|---|---|
车 | car.name = porsche | car.start() |
car.model = 911 | car.drive() | |
car.length = 4499mm | car.brake() | |
car.color = white | car.stop() |
所有汽车都拥有同样的属性,但属性值因车而异。
所有汽车都拥有相同的方法,但是方法会在不同时间被执行。
JavaScript 对象
在JavaScript中 变量是数据值的容器。
这段代码把一个单一值(porsche)赋给名为 car 的变量:
var car = "porsche";
对象也是变量。但是对象中可以包含很多值;
接下来 将把很多值(porsche;911;white)赋给名为car的变量:
var car={type:"porsche",num:"911",color:"white"}
在对象中存储值时;
值以 名称:值对的方式来书写(名称和值由冒号分割);
对象属性
(JavaScript 对象中的)名称:值对被称为属性。
列如
var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};
属性名 | 属性值 |
---|---|
firstName | bill |
lastName | Gates |
age | 62 |
eyeColor | bule |
对象方法
对象也可以有方法
方法是在对象上执行的动作
方法以函数定义被储存在属性中
属性名 | 属性值 |
---|---|
firstName | bill |
lastName | Gates |
age | 62 |
eyeColor | bule |
fullName | function() {return this.firstName + " " + this.lastName;} |
方法是作为属性来存放的函数
实例
var person = {
firstName: "Bill",
lastName : "Gates",
id : 678,
fullName : function() {
return this.firstName + " " + this.lastName;
}
};
在这里 出现了this .
**
那么this是什么?
**
JavaScript this 关键词指的是它所属的对象。
它拥有不同的值,具体取决于它的使用位置:
在方法中,this 指的是所有者对象。
单独的情况下,this 指的是全局对象。
在函数中,this 指的是全局对象。
在函数中,严格模式下,this 是 undefined。
在事件中,this 指的是接收事件的元素。
访问对象属性
前面说了对象也是一个数据容器;
那么我们要怎么去访问到其中的数据呢?
在JavaScript 中您能以两种方式访问属性:
常用访问方式为
var person = {
firstName: "Bill",
lastName : "Gates",
id : 678,
fullName : function() {
return this.firstName + " " + this.lastName;
}
console.log(person.firstName)
};
通常情况下 可以使用
对象名.属性名 对对象属性进行访问;
但是这种方法在某些情况下将无法访问到
这个时候就要是有另一种方法
var person = {
firstName: "Bill",
lastName : "Gates",
id : 678,
fullName : function() {
return this.firstName + " " + this.lastName;
}
5 : "new"
};
person["5"];
当属性名为数字特殊符号等方式命名时;
使用对象名.属性名 对对象属性进行访问时是访问不到的;
这时就要使用**对象名[“属性名”]**对对象属性进行访问