从入门到精通:逐步攻克JS基础(七)
2023-10-18 05:48:58
构造函数与自定义对象
在JS中,我们可以通过构造函数来创建对象。构造函数的名称通常以大写字母开头,它的作用是生成具有特定属性和方法的对象。为了更深入地理解构造函数,我们先来看看创建空对象的方式:
const emptyObject = new Object();
在这里,new
表示我们要创建一个新的对象,Object()
是构造函数。它会创建一个空对象,即没有任何属性和方法的对象。
现在,让我们来创建一个包含自定义属性和方法的对象:
function Person(name, age) {
this.name = name;
this.age = age;
this.greet = function() {
console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
};
}
const person1 = new Person('John', 30);
person1.greet();
在这个例子中,我们创建了一个名为Person
的构造函数,它接受两个参数:name
和age
。构造函数内部使用this
关键字来给新创建的对象分配属性和方法。然后,我们用new Person('John', 30)
创建了一个名为person1
的对象,并调用了它的greet()
方法。
this关键字
this
关键字在构造函数中非常重要。它指向当前正在创建的对象。因此,我们可以使用this
来给对象添加属性和方法。例如,在上面的例子中,我们使用this.name = name
和this.age = age
来给person1
对象添加了name
和age
属性。
this
关键字还可以用来调用对象的方法。例如,我们在Person
构造函数中定义了一个名为greet()
的方法,然后我们可以使用person1.greet()
来调用它。
原型继承
原型继承是JS中的一种重要概念。它允许我们创建新的对象,这些对象继承了另一个对象的属性和方法。这是一种非常方便的方式来复用代码。
要实现原型继承,我们需要使用Object.create()
方法。这个方法接受一个对象作为参数,并创建一个新对象,这个新对象继承了参数对象的所有属性和方法。例如:
const person = {
name: 'John',
age: 30,
greet: function() {
console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
}
};
const person2 = Object.create(person);
person2.name = 'Jane';
person2.greet();
在这个例子中,我们创建了一个名为person
的对象,它包含一些属性和方法。然后,我们使用Object.create(person)
创建了一个新对象person2
。person2
继承了person
的所有属性和方法,但它还具有自己的name
属性。当我们调用person2.greet()
时,它会输出Hello, my name is Jane and I am 30 years old.
。
结语
构造函数、this
关键字和原型继承都是JS中非常重要的概念。掌握了这些概念,你就能创建出更复杂的对象,并编写更强大的代码。