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


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 相关文章推荐
setTimeout自动触发一个js的方法
Jan 15 Javascript
通过设置CSS中的position属性来固定层的位置
Dec 14 Javascript
动态加载js、css的简单实现代码
May 26 Javascript
基于JavaScript实现熔岩灯效果导航菜单
Jan 04 Javascript
利用vueJs实现图片轮播实例代码
Jun 03 Javascript
Vue 进入/离开动画效果
Dec 26 Javascript
微信小程序实现topBar底部选择栏效果
Jul 20 Javascript
iconfont的三种使用方式详解
Aug 05 Javascript
mpvue将vue项目转换为小程序
Sep 30 Javascript
JavaScript学习笔记之数组基本操作示例
Jan 09 Javascript
详解Vue之父子组件传值
Apr 01 Javascript
Vue使用vue-draggable 插件在不同列表之间拖拽功能
Mar 12 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
smarty实现多级分类的方法
2014/12/05 PHP
PHP转盘抽奖接口实例
2015/02/09 PHP
php中执行系统命令的方法
2015/03/21 PHP
PHP简单留言本功能实现代码
2017/06/09 PHP
PHP基于IMAP收取邮件的方法示例
2017/08/07 PHP
php实现的顺序线性表示例
2019/05/04 PHP
laravel5.5安装jwt-auth 生成token令牌的示例
2019/10/24 PHP
JavaScript关于select的相关操作说明
2010/01/13 Javascript
jquery1.5.1中根据元素ID获取元素对象的代码
2011/04/02 Javascript
JavaScript的常见兼容问题及相关解决方法(chrome/IE/firefox)
2013/12/31 Javascript
原生js和jQuery随意改变div属性style的名称和值
2014/10/22 Javascript
AngularJS中的$watch(),$digest()和$apply()区分
2016/04/04 Javascript
js 定义对象数组(结合)多维数组方法
2016/07/27 Javascript
关于两个jQuery(js)特效冲突的bug的解决办法
2016/09/04 Javascript
js使用Replace结合正则替换重复出现的字符串功能示例
2016/12/27 Javascript
Bootstrap常用组件学习(整理)
2017/03/24 Javascript
使用nodejs爬取前程无忧前端技能排行
2017/05/06 NodeJs
jQuery+ajax实现修改密码验证功能实例详解
2017/07/06 jQuery
vue-router 组件复用问题详解
2018/01/22 Javascript
微信小程序局部刷新触发整页刷新效果的实现代码
2018/11/21 Javascript
微信小程序分包加载代码实现方法详解
2019/09/23 Javascript
JS中==、===你分清楚了吗
2020/03/04 Javascript
[01:02]2014 DOTA2国际邀请赛中国区预选赛 现场抢先看
2014/05/22 DOTA
Python smtplib实现发送邮件功能
2018/05/22 Python
Python递归函数特点及原理解析
2020/03/04 Python
jupyter notebook插入本地图片的实现
2020/04/13 Python
Skyscanner英国:苏格兰的全球三大领先航班搜索服务之一
2017/11/09 全球购物
新西兰床上用品和家居用品购物网站:Adairs
2018/04/27 全球购物
小学一年级数学教学计划
2015/01/20 职场文书
中学生学习保证书
2015/02/26 职场文书
单位实习介绍信
2015/05/05 职场文书
狼牙山五壮士观后感
2015/06/09 职场文书
《文化苦旅》读后感:阅读,让人诗意地栖居在大地上
2019/12/24 职场文书
Golang 获取文件md5校验的方法以及效率对比
2021/05/08 Golang
如何使用PostgreSQL进行中文全文检索
2021/05/27 PostgreSQL
mysql timestamp比较查询遇到的坑及解决
2021/11/27 MySQL