【第22期】观点:IT 行业加班,到底有没有价值?

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()方法不存在的时候,才会将它添加到原型中,这段代码只会初次调用构造函数的时候才会执行。

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

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

相关文章推荐

JavaScript创建对象 —— 原型模式

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

js原型模式创建对象+动态原型模式的优点

原型模式创建对象也有自己的缺点 , 它省略了构造函数传参初始化这一过程 , 带来的缺点就是初始化的值都是一致的。而原型最大的缺点就是它最大的优点,那就是共享。原型中所有属性是被很多实例共享的 , 共享对于函数非常合适 , 对于包含基本值的属性也还可以。但如果属性包含引用类型,就存在一定的问题: f...

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

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

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

在js中使用动态原型方法定义对象

使用动态原型方法定义Car类 [code="js"] function Car(sColor,iDoors,iMpg) { this.color = sColor; this.doors = iDoors; this.mpg = iMpg; thi...

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

谈到Javascript面向对象,有几个非常重要的知识点: 创建对象的模式 原型与原型链 继承方式 在Javascript中创建单个对象可以通过很简单的如下两种方式//Object 实例化 var p...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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