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 相关文章推荐
jquery判断小数点两位和自动删除小数两位后的数字
Mar 19 Javascript
JS实现根据当前文字选择返回被选中的文字
May 21 Javascript
Javascript中this关键字的一些小知识
Mar 15 Javascript
javascript实现状态栏文字首尾相接循环滚动的方法
Jul 22 Javascript
基于JavaScript实现一定时间后去执行一个函数
Dec 14 Javascript
JS转换HTML转义符的方法
Aug 24 Javascript
Bootstrap框架的学习教程详解(二)
Oct 18 Javascript
react-native之ART绘图方法详解
Aug 08 Javascript
Javascript实现异步编程的过程
Jun 18 Javascript
vue 移动端适配方案详解
Nov 15 Javascript
解决layui的table插件无法多层级获取json数据的问题
Sep 19 Javascript
微信小程序之左右布局的实现代码
Dec 13 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
PHP的array_diff()函数在处理大数组时的效率问题
2011/11/27 PHP
PHP指定截取字符串中的中英文或数字字符的实例分享
2016/03/18 PHP
php 数组字符串搜索array_search技巧
2016/07/05 PHP
一个对于js this关键字的问题
2007/01/09 Javascript
js调试工具 Javascript Debug Toolkit 2.0.0版本发布
2008/12/02 Javascript
Array.prototype.slice 使用扩展
2010/06/09 Javascript
js 事件处理函数间的Event物件是否全等
2011/04/08 Javascript
jquery foreach使用示例
2013/09/12 Javascript
js中的onchange和onpropertychange (onchange无效的解决方法)
2014/03/08 Javascript
jquery插件validation实现验证身份证号等
2015/06/04 Javascript
使用js复制链接中的部分文字的方法
2015/07/30 Javascript
js实现的下拉框二级联动效果
2016/04/30 Javascript
js实现贪吃蛇小游戏(容易理解)
2017/01/22 Javascript
node.js的事件机制
2017/02/08 Javascript
vue实现将数据存入vuex中以及从vuex中取出数据
2019/11/08 Javascript
sharp.js安装过程中遇到的问题总结
2020/04/02 Javascript
用python + openpyxl处理excel2007文档思路以及心得
2014/07/14 Python
Python编程中归并排序算法的实现步骤详解
2016/05/04 Python
windows下Python实现将pdf文件转化为png格式图片的方法
2017/07/21 Python
python 遍历目录(包括子目录)下所有文件的实例
2018/07/11 Python
python字典改变value值方法总结
2019/06/21 Python
tensorflow多维张量计算实例
2020/02/11 Python
django迁移文件migrations的实现
2020/03/31 Python
python制作微博图片爬取工具
2021/01/16 Python
关于圣诞节的广播稿
2014/01/26 职场文书
《小山羊和小灰兔》教学反思
2014/02/19 职场文书
岗位廉洁从业承诺书
2014/03/28 职场文书
高等教育学专业自荐书
2014/06/17 职场文书
体育教育毕业生自荐信
2014/06/29 职场文书
代理人委托书
2014/08/01 职场文书
乡镇党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
干部职工纪律作风整改措施思想汇报
2014/10/11 职场文书
机关作风建设自查报告
2014/10/22 职场文书
医院党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
入党积极分子党小组意见
2015/06/02 职场文书
高一化学教学反思
2016/02/22 职场文书