关键词

JS创建对象的四种方式

以下是“JS创建对象的四种方式”的完整攻略:

1. 对象字面量

对象字面量是一种最简单的对象创建方式,就是直接在代码中书写一个对象。具体格式如下:

let obj = {
  key1: 'value1',
  key2: 'value2',
  key3: function() {
    console.log('this is a method');
  }
}

其中,对象中的属性值可以是任意类型,甚至是函数。可以通过 '.' 或 '['']' 访问对象中的属性和方法。

obj.key1; // 'value1'
obj['key2']; // 'value2'
obj.key3(); // 'this is a method'

2. 构造函数模式

构造函数模式指的是使用构造函数来创建对象,通过创建实例对象来创建新的对象。具体格式如下:

function Person(name, age) {
  this.name = name;
  this.age = age;
  this.sayName = function() {
    console.log(this.name);
  }
}

let p1 = new Person('Jack', 26);
let p2 = new Person('Tom', 25);

其中,Person 就是一个构造函数,然后通过 new 操作符来创建实例。这里的 this 指向的是每个实例对象本身。

3. 原型模式

原型模式指的是共享一个原型对象,所有实例对象共享该原型对象上的属性和方法。具体格式如下:

function Person() {}

Person.prototype.name = 'Jack';
Person.prototype.age = 26;
Person.prototype.sayName = function() {
  console.log(this.name);
}

let p1 = new Person();
let p2 = new Person();
p1.sayName(); // 'Jack'
p2.sayName(); // 'Jack'

其中,Person 就是一个构造函数,Person.prototype 是一个原型对象,可以向其中添加属性和方法,然后通过 new 操作符来创建实例。这里的 this 指向的是该实例对象本身,在实例找不到对应属性或方法时,它会到该实例的原型对象上找。

4. 组合模式

组合模式是原型模式和构造函数模式的组合,既可以共享原型对象的属性和方法,也可以给每个实例对象添加自己的属性和方法。具体格式如下:

function Person(name, age) {
  this.name = name;
  this.age = age;
}

Person.prototype.sayName = function() {
  console.log(this.name);
}

let p1 = new Person('Jack', 26);
let p2 = new Person('Tom', 25);

在这里,我们既在构造函数中给实例对象添加了属性和方法,又在原型对象上添加了属性和方法,既可以让每个实例对象的属性和方法独立,又可以共享实例对象的属性和方法。

至此,我们完成了“JS创建对象的四种方式”的完整攻略。

本文链接:http://task.lmcjl.com/news/11573.html

展开阅读全文