• 构造函数模式

    构造函数模式

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

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

    1. function FamilyMember( name, age ) {
    2. this.name = name;
    3. this.age = age;
    4. this.introduce = function() {
    5. return 'My name is ' + this.name + '. I\'m ' + this.age + ' years old.';
    6. }
    7. }

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

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

    1. var host = new FamilyMember('Ourai', 18);
    2. var hostess = new FamilyMember('Julia', 17);
    3. console.log(host.introduce()); // "My name is Ourai. I'm 18 years old."
    4. console.log(hostess.introduce()); // "My name is Julia. I'm 17 years old."
    5. console.log(host === hostess); // false
    6. console.log(host.introduce === hostess.introduce); // false

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