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 相关文章推荐
ASP SQL防注入的方法
Dec 25 Javascript
漂亮的jquery提示效果(仿腾讯弹出层)
Feb 05 Javascript
HTML5之lang属性与dir属性的详解
Jun 19 Javascript
Jquery.addClass始终无效原因分析
Sep 08 Javascript
JS仿百度搜索自动提示框匹配查询功能
Nov 21 Javascript
JS运动基础框架实例分析
Mar 03 Javascript
浅析javascript异步执行函数导致的变量变化问题解决思路
May 13 Javascript
javascript 常用验证函数总结
Jun 28 Javascript
JS基础随笔(菜鸟必看篇)
Jul 13 Javascript
JS中如何实现Laravel的route函数详解
Feb 12 Javascript
Angularjs 动态添加指令并绑定事件的方法
Apr 13 Javascript
vue.js 2.*项目环境搭建、运行、打包发布的详细步骤
May 01 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中echo()和print()、require()和include()等易混淆函数的区别
2012/02/22 PHP
PHP带节点操作的无限分类实现方法详解
2016/11/09 PHP
关于Ext中form移除textfield方法:hide(),setVisible(false),remove()
2010/12/02 Javascript
基于jquery实现漂亮的动态信息提示效果
2011/08/02 Javascript
JS操作Cookies的小例子
2013/10/15 Javascript
在css加载完毕后自动判断页面是否加入css或js文件
2014/09/10 Javascript
jQuery短信验证倒计时功能实现方法详解
2016/05/25 Javascript
喜大普奔!jQuery发布 3.0 最终版
2016/06/12 Javascript
JS判断form内所有表单是否为空的简单实例
2016/09/09 Javascript
webix+springmvc session超时跳转登录页面
2016/10/30 Javascript
前端实现文件的断点续传(前端文件提交+后端PHP文件接收)
2016/11/04 Javascript
vue+axios+promise实际开发用法详解
2018/10/15 Javascript
微信小程序如何使用globalData的方法
2019/06/06 Javascript
vue excel上传预览和table内容下载到excel文件中
2019/12/10 Javascript
Node.js fs模块原理及常见用途
2020/10/22 Javascript
vue 通过base64实现图片下载功能
2020/12/19 Vue.js
VUE实现吸底按钮
2021/03/04 Vue.js
python模拟enum枚举类型的方法小结
2015/04/30 Python
在Python中处理日期和时间的基本知识点整理汇总
2015/05/22 Python
离线安装Pyecharts的步骤以及依赖包流程
2020/04/23 Python
MySQL适配器PyMySQL详解
2017/09/20 Python
python数据抓取分析的示例代码(python + mongodb)
2017/12/25 Python
Python基于scipy实现信号滤波功能
2019/05/08 Python
Django 请求Request的具体使用方法
2019/11/11 Python
Python 中如何实现参数化测试的方法示例
2019/12/10 Python
TensorFlow学习之分布式的TensorFlow运行环境
2020/02/05 Python
PythonPC客户端自动化实现原理(pywinauto)
2020/05/28 Python
Python库安装速度过慢解决方案
2020/07/14 Python
如何在Python3中使用telnetlib模块连接网络设备
2020/09/21 Python
详解python 条件语句和while循环的实例代码
2020/12/28 Python
行政经理的岗位职责
2013/11/23 职场文书
施工安全责任书范本
2014/07/24 职场文书
学生检讨书范文
2014/10/30 职场文书
物业保安辞职信
2015/05/12 职场文书
升学宴家长答谢词
2015/09/29 职场文书
MySQL聚簇索引和非聚簇索引的区别详情
2022/06/14 MySQL