返回

从入门到精通:逐步攻克JS基础(七)

前端

构造函数与自定义对象

在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的构造函数,它接受两个参数:nameage。构造函数内部使用this关键字来给新创建的对象分配属性和方法。然后,我们用new Person('John', 30)创建了一个名为person1的对象,并调用了它的greet()方法。

this关键字

this关键字在构造函数中非常重要。它指向当前正在创建的对象。因此,我们可以使用this来给对象添加属性和方法。例如,在上面的例子中,我们使用this.name = namethis.age = age来给person1对象添加了nameage属性。

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)创建了一个新对象person2person2继承了person的所有属性和方法,但它还具有自己的name属性。当我们调用person2.greet()时,它会输出Hello, my name is Jane and I am 30 years old.

结语

构造函数、this关键字和原型继承都是JS中非常重要的概念。掌握了这些概念,你就能创建出更复杂的对象,并编写更强大的代码。