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 相关文章推荐
JS操作JSON要领详细总结
Aug 25 Javascript
jquery批量设置属性readonly和disabled的方法
Jan 24 Javascript
js统计录入文本框中字符的个数并加以限制不超过多少
May 23 Javascript
jQuery过滤选择器详解
Jan 13 Javascript
5个数组Array方法: indexOf、filter、forEach、map、reduce使用实例
Jan 29 Javascript
javascript判断css3动画结束 css3动画结束的回调函数
Mar 10 Javascript
全面了解JS中的匿名函数
Jun 29 Javascript
vue+axios 前端实现的常用拦截的代码示例
Aug 23 Javascript
Node.js EventEmmitter事件监听器用法实例分析
Jan 07 Javascript
vue.js实现会动的简历(包含底部导航功能,编辑功能)
Apr 08 Javascript
原生JS 实现的input输入时表格过滤操作示例
Aug 03 Javascript
vue 在服务器端直接修改请求的接口地址
Dec 19 Vue.js
使用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环境搭建最新方法
2006/09/05 PHP
BBS(php & mysql)完整版(七)
2006/10/09 PHP
ajax+php打造进度条 readyState各状态
2010/03/20 PHP
php设计模式 Delegation(委托模式)
2011/06/26 PHP
PHP中数组定义的几种方法
2013/09/01 PHP
laravel学习教程之存取器
2016/07/30 PHP
Yii遍历行下每列数据的方法
2016/10/17 PHP
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
2017/09/15 PHP
js 鼠标点击事件及其它捕获
2009/06/04 Javascript
浏览器常用高宽的jquery插件
2011/02/24 Javascript
也说JavaScript中String类的replace函数
2011/09/22 Javascript
JavaScript实现获得所有兄弟节点的方法
2015/07/23 Javascript
JavaScript中获取HTML元素值的三种方法
2016/06/20 Javascript
JS中innerHTML和pasteHTML的区别实例分析
2016/06/22 Javascript
Node.js设置CORS跨域请求中多域名白名单的方法
2017/03/28 Javascript
JS实现transform实现扇子效果
2020/01/17 Javascript
解决pycharm双击但是无法打开的情况
2020/10/31 Javascript
uni-app 自定义底部导航栏的实现
2020/12/11 Javascript
基于Vant UI框架实现时间段选择器
2020/12/24 Javascript
[35:55]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.11
2020/12/13 DOTA
Python代码的打包与发布详解
2014/07/30 Python
小议Python中自定义函数的可变参数的使用及注意点
2016/06/21 Python
Numpy中stack(),hstack(),vstack()函数用法介绍及实例
2018/01/09 Python
详解Django rest_framework实现RESTful API
2018/05/24 Python
Numpy 将二维图像矩阵转换为一维向量的方法
2018/06/05 Python
django_orm查询性能优化方法
2018/08/20 Python
对Python3使运行暂停的方法详解
2019/02/18 Python
pybind11在Windows下的使用教程
2019/07/04 Python
python 图片去噪的方法示例
2019/07/09 Python
python中for循环把字符串或者字典添加到列表的方法
2019/07/20 Python
Python算法的时间复杂度和空间复杂度(实例解析)
2019/11/19 Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
2020/02/28 Python
Myprotein蛋白粉美国官网:欧洲畅销运动营养品牌
2016/11/15 全球购物
四风问题个人自查剖析材料思想汇报
2014/09/21 职场文书
领导干部作风建设工作总结
2014/10/23 职场文书
2014年学生工作总结
2014/11/20 职场文书