浅谈原型对象的常用开发模式


Posted in Javascript onJuly 22, 2017

1、构造函数和原型组合使用模式:原型对象虽然可以对所有实例的属性和方法共享,但是也有它的局限性,正是因为可以共享,也导致某一个实例对象若改变了共享的属性和方法,其他对象在使用时会收到影响。

所以可以组合使用构造函数式和原型模式,在实际开发中这种模式也应用的最为广泛。

2、动态原型模式:就是把属性和方法都封装到构造函数中

例如:

function Person(name,age,sex){
    this.name=name;
    this.age=age;
    this.sex=sex;
    if(typeof this.sayName!=="function"){
      Person.prototype.sayName=function(){
        console.log(this.name);
      }
    }
}

3、稳妥构造函数模式:由道格拉斯提出的,就是没有公共属性,也不实用this和new,稳妥模式最适合在安全的环境中使用,如果程序对于安全性的要求很高,那么非常适合这种模式。

例如:

function Person(name,age){
  var obj=new Object();
  obj.name=name;
  obj.age=age;
  obj.sayName=function(){
    console.log(this.name);
  }
  return obj;
}

以上这篇浅谈原型对象的常用开发模式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript Array数组对象的扩展函数代码
May 22 Javascript
jquery 弹出层注册页面等(asp.net后台)
Jun 17 Javascript
多个表单中如何获得这个文件上传的网址实现js代码
Mar 25 Javascript
EasyUI,点击开启编辑框,并且编辑框获得焦点的方法
Mar 01 Javascript
详解JavaScript中的自定义事件编写
May 10 Javascript
AngularJS基础 ng-init 指令简单示例
Aug 02 Javascript
Vue 页面切换效果之 BubbleTransition(推荐)
Apr 08 Javascript
vue实现商品加减计算总价的实例代码
Aug 12 Javascript
浅谈针对Vue相同路由不同参数的刷新问题
Sep 29 Javascript
js中数组对象去重的两种方法
Jan 18 Javascript
vue多层嵌套路由实例分析
Mar 19 Javascript
使用 Vue 实现一个虚拟列表的方法
Aug 20 Javascript
浅谈事件冒泡、事件委托、jQuery元素节点操作、滚轮事件与函数节流
Jul 22 #jQuery
JS实现微信摇一摇原理解析
Jul 22 #Javascript
一个简易的js图片轮播效果
Jul 22 #Javascript
基于JS脚本语言的基础语法详解
Jul 22 #Javascript
JS原生轮播图的简单实现(推荐)
Jul 22 #Javascript
JS+HTML5实现图片在线预览功能
Jul 22 #Javascript
JQuery和html+css实现带小圆点和左右按钮的轮播图实例
Jul 22 #jQuery
You might like
PHP解析html类库simple_html_dom的转码bug
2014/05/22 PHP
PHP+jQuery 注册模块的改进(一):验证码存入SESSION
2014/10/14 PHP
十个PHP高级应用技巧果断收藏
2015/09/25 PHP
准确获得页面、窗口高度及宽度的JS
2006/11/26 Javascript
Javascript 生成指定范围数值随机数
2009/01/09 Javascript
半角全角相互转换的js函数
2009/10/16 Javascript
JavaScript instanceof 的使用方法示例介绍
2013/10/23 Javascript
div浮层,滚动条移动,位置保持不变的4种方法汇总
2013/12/11 Javascript
AngularJS基础 ng-focus 指令简单示例
2016/08/01 Javascript
MUI 上拉刷新/下拉加载功能实例代码
2017/04/13 Javascript
lhgcalendar时间插件限制只能选择三个月的实现方法
2017/07/03 Javascript
ES6扩展运算符的用途实例详解
2017/08/20 Javascript
浅谈vue父子组件怎么传值
2018/07/21 Javascript
JS数组实现分类统计实例代码
2018/09/30 Javascript
简化版的vue-router实现思路详解
2018/10/19 Javascript
Angular封装搜索框组件操作示例
2019/04/25 Javascript
微信小程序地图导航功能实现完整源代码附效果图(推荐)
2019/04/28 Javascript
vue如何获取自定义元素属性参数值的方法
2019/05/14 Javascript
Vue实现Layui的集成方法步骤
2020/04/10 Javascript
jQuery中getJSON跨域原理的深入讲解
2020/09/02 jQuery
[03:43]2014DOTA2西雅图国际邀请赛 newbee战队巡礼
2014/07/07 DOTA
[45:18]完美世界DOTA2联赛循环赛 PXG vs IO 第二场 11.06
2020/11/09 DOTA
Python 深入理解yield
2008/09/06 Python
python3.6使用pymysql连接Mysql数据库
2018/05/25 Python
python实现微信自动回复及批量添加好友功能
2019/07/03 Python
python 三元运算符使用解析
2019/09/16 Python
django连接mysql数据库及建表操作实例详解
2019/12/10 Python
python报错: 'list' object has no attribute 'shape'的解决
2020/07/15 Python
Python使用lambda抛出异常实现方法解析
2020/08/20 Python
会计毕业生自荐信
2013/11/21 职场文书
留学推荐信怎么写
2014/01/25 职场文书
致标枪运动员广播稿
2014/02/06 职场文书
贷款担保书范本
2015/09/22 职场文书
电工生产实习心得体会
2016/01/22 职场文书
2016年村干部公开承诺书(公开承诺事项)
2016/03/25 职场文书
《哪吒之魔童降世》观后感:世上哪有随随便便的成功
2019/11/08 职场文书