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


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 encodeURI和encodeURIComponent的比较
Apr 03 Javascript
Node.js+Express配置入门教程
May 19 Javascript
Bootstrap布局之栅格系统详解
Jun 13 Javascript
ES6新特性三: Generator(生成器)函数详解
Apr 21 Javascript
详解webpack打包vue时提取css
May 26 Javascript
微信小程序 检查接口状态实例详解
Jun 23 Javascript
Angular2实现组件交互的方法分析
Dec 19 Javascript
VUE在for循环里面根据内容值动态的加入class值的方法
Aug 12 Javascript
解决vue的 v-for 循环中图片加载路径问题
Sep 03 Javascript
vue使用Google地图的实现示例代码
Dec 19 Javascript
JS中FormData类实现文件上传
Mar 27 Javascript
Echarts如何重新渲染实例详解
May 30 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版(5)
2006/10/09 PHP
PHP中使用Imagick读取pdf并生成png缩略图实例
2015/01/21 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
2016/12/15 PHP
JQuery的Validation插件中Remote验证的中文问题
2010/07/26 Javascript
js实现瀑布流的一种简单方法实例分享
2013/11/04 Javascript
iframe子页面获取父页面元素的方法
2013/11/05 Javascript
js取消单选按钮选中示例代码
2013/11/14 Javascript
gridview生成时如何去掉style属性中的border-collapse
2014/09/30 Javascript
javascript中String对象的slice()方法分析
2014/12/20 Javascript
浅谈被jQuery抛弃的函数及替代函数
2015/05/03 Javascript
javascript相关事件的几个概念
2015/05/21 Javascript
jQuery中prepend()方法使用详解
2015/08/11 Javascript
js严格模式总结(分享)
2016/08/22 Javascript
使用bootstrap validator的remote验证代码经验分享(推荐)
2016/09/21 Javascript
JS中parseInt()和map()用法分析
2016/12/16 Javascript
JS条形码(一维码)插件JsBarcode用法详解【编码类型、参数、属性】
2017/04/19 Javascript
详解微信小程序 template添加绑定事件
2017/06/23 Javascript
解决axios会发送两次请求,有个OPTIONS请求的问题
2018/10/25 Javascript
JavaScript键盘事件常见用法实例分析
2019/01/03 Javascript
vue实现element表格里表头信息提示功能(推荐)
2019/11/20 Javascript
vue项目打包为APP,静态资源正常显示,但API请求不到数据的操作
2020/09/12 Javascript
Python正则表达式常用函数总结
2017/06/24 Python
python cs架构实现简单文件传输
2020/03/20 Python
如何利用Pyecharts可视化微信好友
2019/07/04 Python
Tensorflow中的降维函数tf.reduce_*使用总结
2020/04/20 Python
详解tensorflow2.x版本无法调用gpu的一种解决方法
2020/05/25 Python
Python StringIO及BytesIO包使用方法解析
2020/06/15 Python
浅谈keras中的keras.utils.to_categorical用法
2020/07/02 Python
利用Python实现自动扫雷小脚本
2020/12/17 Python
css3 transform 3d 使用css3创建动态3d立方体(html5实践)
2013/01/06 HTML / CSS
GUESS盖尔斯法国官网:美国时尚品牌
2016/09/23 全球购物
关于.NET, HTML的五个问题
2012/08/29 面试题
党的群众路线学习材料
2014/05/16 职场文书
谢师宴家长答谢词
2015/09/30 职场文书
Windows server 2012 R2 安装IIS服务器
2022/04/29 Servers
vue3 自定义图片放大器效果的示例代码
2022/07/23 Vue.js