原型模式

将可复用的、可共享的、耗时大的从基类中提取出来,然后放在其原型中,然后子类通过组合继承或者寄生组合式继承将方法和属性继承下来。

 1 //图片轮播类
 2 var LoopImages = function (imgArr, container) {
 3     this.imgArray = imgArr;
 4     this.container = container;
 5 }
 6 LoopImages.prototype = {
 7     createImage: function () {
 8         console.log('creat img function');
 9     },
10     changeImage: function () {
11         console.log('change img function');
12     }
13 }
14
15 var SlideLoopImg = function (imgArr, container) {
16     //构造函数继承图片轮播类
17     LoopImages.call(this, imgArr, container);
18 }
19
20 SlideLoopImg.prototype = new LoopImages();
21 //重写继承切换下一张图片的方法
22 SlideLoopImg.prototype.changeImage = function () {
23     console.log('SlideLoopImg Change Images');
24 }

原型继承

通过prototypeExtend创建的是一个对象,我们无需再去NEW新的实例对象。

 1 function prototypeExtend() {
 2     var F = function () { },
 3         args = arguments,
 4         i=0,
 5         len = args.length;
 6
 7     for (; i < len; i++) {
 8         for (var j in args[i]) {
 9             F.prototype[j] = args[i][j];
10         }
11     }
12
13     return new F();
14 }
15
16 var penguin = prototypeExtend({
17     speed: 20,
18     swim: function () {
19         console.log('游泳:' + this.speed);
20     },
21     run: function (speed) {
22         console.log('奔跑:' + speed);
23     },
24     jump: function () {
25         console.log('跳跃');
26     }
27 })

转载于:https://www.cnblogs.com/CoffeeEddy/p/6891505.html

js 设计模式学习(3)相关推荐

  1. useRef与JS设计模式学习(一)

    useRef与JS设计模式学习(一) useRef const refContainer = useRef(initialValue); 使用useRef Hook,你可以轻松的获取到dom的ref. ...

  2. js 设计模式学习(1)

    最近一个人外出旅行 顺便在那座城市买了一本关于JS设计模式的书 供无聊的时候阅读 却发现小有收获 旅游回来以后立马写下心得 做了一个地图 并以此总结此次旅行的经过的地方 尝试1: 尝试写JS类 1 v ...

  3. js设计模式学习之单例模式

    单例模式 保证一个类仅有一个实例,并提供一个访问它的全局访问点 实现一个单例模式 用一个变量标志当前是否已经为某个类型创建过对象,如果是,则下次直接返回之前创建的对象. var Singleton = ...

  4. JS设计模式学习 - 代理模式

    代理模式(Proxy) 为一个对象提供一个代用品或占位符,以便控制对它们的访问. 代理模式是一种非常有意义的模式,在生活中可以找到很多代理模式的场景.比如,明星都有经纪人作为代理. 代理模式的关键是, ...

  5. JS设计模式学习实例之单例模式

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head><ti ...

  6. 7 种 Javascript 常用设计模式学习笔记

    7 种 Javascript 常用设计模式学习笔记 由于 JS 或者前端的场景限制,并不是 23 种设计模式都常用. 有的是没有使用场景,有的模式使用场景非常少,所以只是列举 7 个常见的模式 本文的 ...

  7. JS设计模式--组合模式

    JS设计模式–组合模式 昨天学习了白贺翔老师的JS组合模式,现在把我学到的分享出来叭O(∩_∩)O,直接看下面代码 <!DOCTYPE html> <html lang=" ...

  8. js设计模式笔记小结

    JS 设计模式 面向对象 搭建开发环境 npm / webapck / webpack-dev-server / babel babel-core babel-loader babel-polyfil ...

  9. java/android 设计模式学习笔记(1)--- 单例模式

    前段时间公司一些同事在讨论单例模式(我是最渣的一个,都插不上嘴 T__T ),这个模式使用的频率很高,也可能是很多人最熟悉的设计模式,当然单例模式也算是最简单的设计模式之一吧,简单归简单,但是在实际使 ...

最新文章

  1. 2021年web前端发展方向有哪些
  2. python np.arange,np.linspace和np.logspace之间的区别
  3. Centos 用户组管理
  4. 使用元数据设计测试用例
  5. JAVA 客户端跳转与服务器端跳转 get与post
  6. {dede:global.cfg_templets_skin/}路径出错
  7. Mac做深度学习开发【从无到有】
  8. Python Lambda 的简单用法
  9. 【iOS】Swift3 报错:Value of type 'AppDelegate' has no member 'managedObjectContext',UIApplication has no
  10. Why not inherit from ListT?
  11. java data文件夹_java-如何在不指定父文件夹/ ref的情况下遍历Datasnapshot
  12. python中安装包出现Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None))…………
  13. [渝粤教育] 西南科技大学 高速铁路线路与车站 在线考试复习资料
  14. 多媒体博客商业计划草案
  15. 宇视交换机vlan路由配置指导
  16. c语言中power是什么变量,c语言学习新手必看 power by vcok.com[转载]
  17. 计算机密码怎么重置,电脑忘记密码了怎么重置密码
  18. 英语单词最全的前后缀讲解
  19. transforms常用函数简介
  20. 直播知识点实录|百度大脑EasyDL产业应用系列 安全生产专场

热门文章

  1. [转]VirtualBox 复制VDI 并能创建新的虚拟机
  2. 括号匹配编码c语言,用c语言实现括号匹配算法
  3. 虚拟化技术原理与实现 pdf_多进程的实现原理-多道技术
  4. console linux 口 没输出_Console很飒,不止log
  5. 返回动态html,使用硒返回动态页面的html代码
  6. 没有流程的项目管理,都是无用功!
  7. 【实验】DHCP、NAT配置案例
  8. 云计算情报局预告|告别 Kafka Streams,让轻量级流处理更加简单
  9. Java 线上问题排查神器 Arthas 快速上手与原理浅谈
  10. html回车按键确认按钮,button默认enter事件(回车事件)。