javascript (对象定义)动态原型模式

原创 2016年08月30日 17:38:57

这个主要做法就是,通过检查某个应该存在的方法是否有效,是否需要初始化原型。这个是通过构造函数中初始化原型,可以保存同时使用构造函数和原型的优点。

代码演示:
function Person(name,age,job){

    this.name=name;

    this.age=age;

    this.job=job;

    if (typeof this.sayName != "function") {

        Person.prototype.sayName=function(){

            alert(this.name);

        }

    }

}

var friend =new Person("Nicholas",21,"Software Engineer") ;

friend.sayName();


在这个代码中,只有sayName()方法不存在的时候,才会将它添加到原型中,这段代码只会初次调用构造函数的时候才会执行。

但在使用动态原型模式的时候,不能使用对面字面量重写原型。

如果在已经创建实例的情况下重写原型,那么会切断现有实例与新原型之间的联系。
版权声明:本文为原创文章,未经博主允许不得转载,欢迎各种交流,共同进步。

相关文章推荐

【JS】JavaScript中对象的创建与原型模式

JavaScript中对象的创建与原型模式

javascript中原型模式创建对象特点分析

在javascript中,我们创建的每个函数都有一个prototype(原型)属性。这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法。使用原型对象的好处...

JavaScript创建对象 —— 原型模式

我们创建的每个函数都有一个prototype(原型)属性,这个属性是一个指针,指向一个对象,这个对象我们叫它原型对象。而这个原型对象的用途是包含可以由特定类型的所有实例共享的属性和方法。它所包含的属性...

「JavaScript里的面向对象」— 5.原型模式

在这一章节中你将会学习使用“函数(function)”对象中的prototype属性。在JavaScript的学习过程中,理解prototype的工作原理是很重要的一个部分。毕竟,JavaScript...

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

首先来讲一下构造函数创建对象。ECMAScript中的构造函数可用来创建特定类型的对象。请看下面示例了解一下构造函数模式:function Person(name, age, job){ th...

javascript 原型模式的工作原理 到 对象模式的探寻(下)

上篇文章中提到这篇将要对编程语言设计进行一些讨论,但是笔者在学习过程中发现,需要学习的知识太多,根本不是一篇blog能说清的。所以也只能暂时放下,有机会的话,会将学习笔记整理到blog上来。笔者目前也...

JavaScript高级程序设计之面向对象的程序设计之创建对象之原型模式 第6.2.3讲笔记

我们创建的每个函数都有一个 prototype(原型)属性,这个属性是一个指针,指向一个对象, 而这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法。如果按照字面意思来理解,那 么pro...

JS中使用动态原型模式、寄生构造函数模式、稳妥构造函数模式创建对象

承接上一篇,在JS中组合使用构造函数模式与原型模式创建对象今天接着说剩下几种模式: 动态原型模式 寄生构造函数模式(parasitic) 稳妥构造函数模式(durable)动态原型模式动态原型模式把所...

javascript中的原型和创建对象的原型模式的剖析

原型对象的理解 当创建了一个函数,就会就这个函数创建一个prototype属性,这个属性指向函数的原型对象。 这时,原型对象会获得一个constructor属性,这个属性有一个指针,这个指针指向p...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)