1.关于JavaScript对象的说明。
JavaScript对象并不像Apex、Java或C#开发者认为的那样有类。
每个对象都继承自另一个对象。
对象是可变的。
当对象被创建时,它们会得到自己的变量上下文。
2.创建对象
从语法上讲,有几种方法可以在JavaScript中创建一个对象。
但是无论你如何创建一个对象,它实际上都是在抽象一个叫做Object.create()的底层API。
在某些情况下,有很好的理由直接使用Object.create(),但我们不会在这里讨论这个问题。
相反,让我们来看看创建对象的更常见的方法。
①对象字面符号Literal Notation
第一种创建对象的语法被称为对象字面符号。
这是一种简单的声明方式,可以一次性地声明和分配一个对象。然后,该对象作为同一语句的一部分被立即分配。
const bike = {
gears: 10,
currentGear: 3,
changeGear: function(direction, changeBy) {
if (direction === 'up') {
this.currentGear += changeBy;
} else {
this.currentGear -= changeBy;
}
}
}
console.log(bike.gears); // 10
console.log(bike.currentGear); //3
bike.changeGear('up', 1);
console.log(bike.currentGear); //4
对象字面符号在本质上是声明性的。
本例中的对象自行车有三个成员:gears和currentGear属性以及changeGear函数。
一旦对象被创建,要引用这些成员,请使用点符号。
你可能注意到JSON和对象字面符号很像,但它们并不一样。
JSON是一种数据交换格式。
对象字面符号是一种编程语法。
然而,JSON规范是基于对象字面符号的,所以很容易将两者混为一谈。
字面对象对于一次性的对象是很好的。
但如果你想创建两个或更多相同类型的对象,它们就不实用了。
为此,你需要可重复的逻辑来创建新对象。
②用构造函数创建新对象
另一种创建对象的方法是使用构造函数。
构造函数是一个包含指令的函数,用于在创建和分配对象时建立该对象的属性。
这比对象的字面意思有优势,因为你可以创建许多具有相同属性的对象实例。
function Bike(gears, startGear) {
this.gears = gears;
this.currentGear = startGear;
}
Bike.prototype.changeGear = function(direction,changeBy){
if(direction === 'up') {
this.currentGear +&#