javascript (对象定义)原型模式

原创 2016年08月30日 17:37:47

每个函数中都有一个prototype(原型)属性,它是一个指针,指向一个对象。
按照原型定义,prototype通过调用构造函数而创建的对象实例的原型对象。使用原型对象的好处是可以让所有实例共享它包含的属性和方法。

代码例子:
function Person(){}

Person.prototype.name="Nicholas";

Person.prototype.age=29;

Person.prototype.job="software Engineer";

Person.prototype.sayName=function(){

console.log(this.name);

};

var person1=new Person();

person1.sayName();          //Nicholas

var person2=new Person();

person2.sayName();          //Nicholas

person1.sayName() == person2.sayName()          //true



原生模型也存在一个问题
就是这个元素对象的属性很多实例都可以共享,当一个实例修改其中的属性的时候,其他属性也跟随着修改。
版权声明:本文为原创文章,未经博主允许不得转载,欢迎各种交流,共同进步。

JavaScript 原型模式

JavaScript原型模式 1. 普通对象 var o1 = {} var o2 = new Object() var o3 = new f1() 除了函数对象就是普通对象 2. ...
  • qq_38860226
  • qq_38860226
  • 2018年01月16日 10:03
  • 24

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

 这个主要做法就是,通过检查某个应该存在的方法是否有效,是否需要初始化原型。这个是通过构造函数中初始化原型,可以保存同时使用构造函数和原型的优点。 代码演示: function ...
  • sinat_15951543
  • sinat_15951543
  • 2016年08月30日 17:38
  • 563

设计模式(六)原型模式

一、说说鸣人的影分身 话说鸣人听了水木老师的建议偷出了卷轴并且学会了一招禁术:影分身之术。当鸣人使用影分身之术的时候就会有好多个和鸣人一模一样的人出现,就像复制出来的一样,这种影分身之术在面向对象的...
  • xingjiarong
  • xingjiarong
  • 2015年11月28日 16:13
  • 1682

JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)

这篇文章主要介绍了面向对象JS基础讲解,工厂模式、构造函数模式、原型模式、混合模式、动态原型模式,需要的朋友可以参考下 什么是面向对象?面向对象是一种思想!(废话)。   面向对象...
  • Willian1st
  • Willian1st
  • 2016年06月28日 13:48
  • 1003

JavaScript中定义对象的几种方式(JavaScript中没有类的概念,只有对象)

1)基于已有对象扩充其属性和方法 var object = new Object(); object.name = "kyle"; //添加属性name object.sayName = f...
  • silianlinyi
  • silianlinyi
  • 2012年05月28日 20:38
  • 2608

浅拷贝与深度拷贝(原型模式)

深度复制
  • liang08114
  • liang08114
  • 2016年05月09日 11:14
  • 531

说说 JavaScript 创建对象的各种模式

之前说的使用 Object 构造函数或者对象字面量来创建对象,都有一个缺点:使用同一个接口创建多个对象,会产生大量重复的代码。为了解决这个问题,人们考虑了很多种对象创建模式。1 工厂模式这种模式抽象了...
  • deniro_li
  • deniro_li
  • 2017年03月20日 16:35
  • 232

jQuery对象原型构建-学习笔记

函数在充当类的构造器时,原型prototype是一个重要的概念。prototype是构造函数的一个属性, 该属性指向一个对象。而这个对象将作为该构造函数所创建的所有实例的基引用(base refere...
  • u013457382
  • u013457382
  • 2015年09月29日 09:57
  • 934

浅谈JavaScript中的原型模式

person2和person3的name属性都返回dw。原型对象的属性和方法被所有特定类型的实例共享。在默认的情况下,每个原型对象会自动获得一个constructor属性,用于指向prototype属...
  • u011043843
  • u011043843
  • 2014年08月07日 14:46
  • 1176

JavaScript中对象的定义方式

在JavaScript中是没有类的概念的,只有对象。无论是字符串,数值,数组还是函数,其本质都是对象。此外,JavaScript是允许自定义对象。什么是对象呢?简而言之,对象是带有属性和方法的特殊数据...
  • qq_41690306
  • qq_41690306
  • 2018年02月04日 16:54
  • 41
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:javascript (对象定义)原型模式
举报原因:
原因补充:

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