构造函数模式

在像 JavaScript 这种没有类的概念的语言中,如果想创建特定的实例对象,可以通过在函数之前加上 new 关键字来实现。在调用构造函数时可以传入参数以初始化实例对象的属性值。用这种方式创建的实例对象的属性和方法是独立的,不与其他实例对象共享。

在 JavaScript 中,构造函数一般长这样:

function FamilyMember( name, age ) {
  this.name = name;
  this.age = age;

  this.introduce = function() {
    return 'My name is ' + this.name + '. I\'m ' + this.age + ' years old.';
  }
}

其中,nameage 是成员属性,introduce() 是成员方法。

让我们来用「家庭成员」构造函数 FamilyMember() 来创建几个实例对象看看吧!

var host = new FamilyMember('Ourai', 18);
var hostess = new FamilyMember('Julia', 17);

console.log(host.introduce());      // "My name is Ourai. I'm 18 years old."
console.log(hostess.introduce());   // "My name is Julia. I'm 17 years old."

console.log(host === hostess);  // false
console.log(host.introduce === hostess.introduce);  // false

由上例中的 === 比较可以看出,两个实例对象 hosthostessintroduce() 方法是不同的,即构造函数 FamilyMember() 的成员方法不是共享的。

results matching ""

    No results matching ""