JavaScript 创建对象 4 组合使用构造函数模式和原型模式

组合使用构造函数模式和原型模式的代码实例:

        function Person(name, age, job) {
            this.name = name;
            this.age = age;
            this.job = job;
            this.friends = ["Toby", "Tina"];
        }
        Person.prototype = {
            sayName: function() {
                console.log(this.name);
            }
        }
        // 以下代码,确保通过 constructor 属性还能像之前的语法那样能够访问到适当的值
        Object.defineProperty(Person.prototype, "constructor", {
                                  enumerable: false,
                                  value: Person
                              });

        var person1 = new Person("Neo", 29, "Software Engineer");
        var person2 = new Person("Tim", 30, "Teacher");

        person2.friends.push("Jack");

        console.log(person1.friends);
        console.log(person2.friends);
        console.log(person1.friends === person2.friends);
        console.log(person1.sayName === person2.sayName);

输出结果:

JavaScript 创建对象 4 组合使用构造函数模式和原型模式_第1张图片
输出结果

这种构造函数与原型模式混成的模式,是目前在 ECMAScript 中使用最广泛、认同度最高的一种创建自定义类型的方法。可以说,这是用来定义引用类型的一种默认模式。

你可能感兴趣的:(JavaScript 创建对象 4 组合使用构造函数模式和原型模式)