Javascript是一种基于对象的语言,你遇到的所有东西几乎都是对象。但是,它又不是一种真正的面向对象编程语言,因为它的语法中没有类的概念。
1.如何创建对象
JavaScript用一个{...}表示一个对象,键值对以xxx: xxx形式申明,用,隔开。 注意,最后一个键值对不需要在末尾加逗号。
访问不存在的属性不报错,而是返回undefined。 例如:
<script>
//创建了汽车对象,包含三个属性:品牌、型号、颜色
let car = {type:"porsche", model:"911", color:"white"};
console.log("品牌:"+car.type);
console.log("型号:"+car.model);
console.log("颜色:"+car.color);
console.log("价格:"+car.price);
</script>
运行结果:
品牌:porsche
型号:911
颜色:white
价格:undefined
2.添加和删除属性
由于JavaScript的对象是动态类型,你可以自由地给一个对象添加或删除属性。
<script>
//创建了汽车对象,包含三个属性:品牌、型号、颜色
let car = {type:"porsche", model:"911", color:"white"};
console.log("品牌:"+car.type);
console.log("型号:"+car.model);
console.log("颜色:"+car.color);
console.log("价格:"+car.price);
//添加价格属性
car.price = 500000;
console.log("价格:"+car.price);
//删除品牌属性
delete car.type;
console.log("品牌:"+car.type);
</script>
运行结果:
品牌:porsche
型号:911
颜色:white
价格:undefined
价格:500000
品牌:undefined
3.添加方法
对象也可以有方法。方法是在对象上执行的动作。方法以函数定义被存储在属性中。
例如:
<script>
//创建了汽车对象,包含三个属性:品牌、型号、颜色
let car = {
type: "porsche",
model: "911",
color: "white",
drive: function(){
console.log(this.type+"牌,"+"型号为:"+this.model+",小汽车启动了...");
}
};
car.drive();
</script>
运行结果:
porsche牌,型号为:911,小汽车启动了...
4.this 关键词
与Java类似,this是指向当前对象的引用。 在函数定义中,this 引用该函数的“拥有者”,即调用当前方法的那个对象。
this.type的意思是 this 对象的 type 属性。