美文网首页JavaScript 使用记录
JavaScript 创建对象 4 组合使用构造函数模式和原型模

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

作者: 赵者也 | 来源:发表于2017-12-13 17:22 被阅读6次

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

            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);
    

    输出结果:

    输出结果

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

    相关文章

      网友评论

        本文标题:JavaScript 创建对象 4 组合使用构造函数模式和原型模

        本文链接:https://www.haomeiwen.com/subject/qtknixtx.html