美文网首页JavaScript 使用记录
JavaScript 创建对象 5 动态原型模式

JavaScript 创建对象 5 动态原型模式

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

动态原型模式,这种模式的目的是将原本独立的构造函数和原型进行整合封装。这样在构造函数中初始化原型(仅在必要的时候),换句话说,可以通过检查某个应该存在的方法是否有效,来决定是否需要初始化原型。来看一个例子:

        function Person(name, age, job) {
            this.name = name;
            this.age = age;
            this.job = job;
            this.friends = ["Toby", "Tina"];
            if (typeof this.sayName != "function") {
                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");
        person1.sayName();

这段代码将输出:

输出结果

对应采用这种模式创建的对象,还可以使用 instanceof 操作符确定它的类型。

注意:使用动态原型模式时,不能使用对象字面量重写原型。因为,如果在已经创建了实例的情况下重写原型,那么就会切断现有实例与新原型之间的联系。

相关文章

  • 关于JavaScript创建对象的多种方式

    JavaScript创建对象的方法 工厂模式 构造函数模式 原型模式 组合使用构造函数模式和原型模式 动态原型模式...

  • JavaScript创建对象

    JavaScript中创建对象有以下七种方式: 工厂模式构造函数模式原型模式构造函数和原型组合模式动态原型模式寄生...

  • JavaScript 创建对象 5 动态原型模式

    动态原型模式,这种模式的目的是将原本独立的构造函数和原型进行整合封装。这样在构造函数中初始化原型(仅在必要的时候)...

  • 设计模式-原型模式

    5、原型模式原型模式是指原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象,属于创建型模式。创建原型接口...

  • 原型模式(一)

    原型模式(一) 在Javascript中一切皆是对象,所以我们会创建很多对象。那么就来看看创建对象的方法.原型模式...

  • JavaScript创建对象

    创建对象 1.工厂模式 2.构造函数模式 3.原型模式 4.组合使用构造函数模式和原型模式 5.动态原型模式 6....

  • 链式操作

    对象字面量创建对象 构造函数创建对象 构造函数和原型一起创建对象 参考 JavaScript设计模式 --- 方法...

  • 原型和原型链

    一、理解原型设计模式以及 JavaScript 中的原型规则 设计模式 工厂模式 在函数内创建一个对象,给对象赋予...

  • 构造函数-js-高级程序设计-第六章笔记

    前言 理解对象 创建对象构造函数模式原型模式组合使用构造函数模式和原型模式动态原型模式寄生构造函数模式稳妥构造函数...

  • 对象的创建

    创建对象1.工厂模式 2.构造函数模式 3.原型模式 4.组合使用原型模式和构造函数模式 (常见的方式) 5.动态...

网友评论

    本文标题:JavaScript 创建对象 5 动态原型模式

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