javascript原型模式用法实例详解


Posted in Javascript onJune 04, 2015

本文实例讲述了javascript原型模式用法。分享给大家供大家参考。具体分析如下:

一般在了解了工厂模式和构造函数模式的弊端之后,就知道为什么需要原型模式了
 
原型模式i的定义:每个函数都有一个prototype(原型)属性,这个属性是一个对象,它的用途是包含可以由特定类型的所有实例共享的属性和方法。比如在构造函数模型中sayInformation()方法,如果声明两个实例就要构造两次sayInformation方法,但是声明两次是没有必要的,这就是为什么有原型模式的出现(尼玛,网上那些博客上面都是扯谈的东西,还是看书讲的容易理解),sayInformation()声明为原型模式之后,实例就共享了,就没有必要声明两次了

function Person(){}
Person.prototype.name="jack";
Person.prototype.age=10;
Person.prototype.sayInformation=function()
{
  console.log("my name is"+this.name+" age is"+this.age);
}
var person1 = new Person();
person1.sayInformation();
console.info(person1.name);
//来自原型的属性name
person1.name="Greg";
//修改实例的name属性
console.info(person1.name);
//来自实例的属性name
delete person1.name ;
//来自实例的属性,这里删除的是实例的属性,但是原型的属性依然存在
console.info(person1.name);
//来自原型的属性name
var person2 = new Person();
person2.sayInformation();
console.info(person1.hasOwnProperty("name"));
//hasOwnProperty检查属性是属于实例还是原型中,如果是实例中就返回true
console.info(person1.name==person2.name);
console.info(person1.sayInformation==person2.sayInformation);
console.info(person1.constructor);
//指向person1的构造函数
//原型更加简便的写法
function Person2(){}
Person2.prototype={
  name:"jack",
  age:29,
  sayInformationfunction:function()
    {
      console.log("my name is"+this.name+" age is"+this.age);
    }
}

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
“不能执行已释放的Script代码”错误的原因及解决办法
Sep 09 Javascript
javascript 树形导航菜单实例代码
Aug 13 Javascript
javascript封装简单实现方法
Aug 11 Javascript
基于canvas粒子系统的构建详解
Aug 31 Javascript
Angularjs渲染的 using 指令的星级评分系统示例
Nov 09 Javascript
JS实现不用中间变量temp 实现两个变量值得交换方法
Feb 04 Javascript
jQuery实现点击旋转,再点击恢复初始状态动画效果示例
Dec 11 jQuery
基于Vue和Element-Ui搭建项目的方法
Sep 06 Javascript
jQuery实现验证用户登录
Dec 10 jQuery
Js数组扁平化实现方法代码总汇
Nov 11 Javascript
ant design pro中可控的筛选和排序实例
Nov 17 Javascript
JavaScript原始值与包装对象的详细介绍
May 11 Javascript
使用JavaScript刷新网页的方法
Jun 04 #Javascript
JavaScript中Cookies的相关使用教程
Jun 04 #Javascript
javascript组合使用构造函数模式和原型模式实例
Jun 04 #Javascript
浅析JavaScript中的事件机制
Jun 04 #Javascript
JavaScript中指定函数名称的相关方法
Jun 04 #Javascript
JavaScript中Function()函数的使用教程
Jun 04 #Javascript
JavaScript中的函数嵌套使用
Jun 04 #Javascript
You might like
基于jQuery实现左右div自适应高度完全相同的代码
2012/08/09 Javascript
JavaScript实现的in_array函数
2014/08/27 Javascript
JavaScript分秒倒计时器实现方法
2015/02/02 Javascript
js支持键盘控制的左右切换立体式图片轮播效果代码分享
2015/08/26 Javascript
Vue原理剖析 实现双向绑定MVVM
2017/05/03 Javascript
JS库particles.js创建超炫背景粒子插件(附源码下载)
2017/09/13 Javascript
详解基于vue-cli配置移动端自适应
2018/01/13 Javascript
jQuery实现带右侧索引功能的通讯录示例【附源码下载】
2018/04/17 jQuery
24个ES6方法解决JS实际开发问题(小结)
2020/05/31 Javascript
js实现贪吃蛇游戏(简易版)
2020/09/29 Javascript
详解Vue的mixin策略
2020/11/19 Vue.js
[01:00:54]TI4正赛第二日开场
2014/07/20 DOTA
Python调用命令行进度条的方法
2015/05/05 Python
python编程开发之textwrap文本样式处理技巧
2015/11/13 Python
python+selenium开发环境搭建图文教程
2017/08/11 Python
Python使用Selenium+BeautifulSoup爬取淘宝搜索页
2018/02/24 Python
python进行两个表格对比的方法
2018/06/27 Python
对Python 内建函数和保留字详解
2018/10/15 Python
python多环境切换及pyenv使用过程详解
2019/09/27 Python
深入浅析Python 中的sklearn模型选择
2019/10/12 Python
Pytorch释放显存占用方式
2020/01/13 Python
python对文件的操作方法汇总
2020/02/28 Python
python读取xml文件方法解析
2020/08/04 Python
使用Python提取文本中含有特定字符串的方法示例
2020/12/09 Python
美国面料纺织品商城:Fabric.com
2017/06/28 全球购物
北欧最好的童装网上商店:Babyshop
2019/09/15 全球购物
英国时尚配饰、珠宝和服装网站:KJ Beckett
2020/01/23 全球购物
公司业务主管岗位职责
2013/12/07 职场文书
我的五年职业生涯规划
2014/01/23 职场文书
九年级语文教学反思
2014/02/04 职场文书
幼儿园教师节演讲稿
2014/09/03 职场文书
班主任2015新年寄语
2014/12/08 职场文书
文明单位汇报材料
2014/12/24 职场文书
先进个人申报材料
2014/12/30 职场文书
2019暑期安全倡议书!
2019/06/27 职场文书
mysql查询的控制语句图文详解
2021/04/11 MySQL