博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
以构造函数和原型法重新实现定时器封装
阅读量:5922 次
发布时间:2019-06-19

本文共 730 字,大约阅读时间需要 2 分钟。

  上篇文章实现了“使用工厂模式和闭包实现定时器封装”,

http://www.cnblogs.com/lightsong/p/3703045.html

本文记录以构造函数和原型法对其重新实现。

 

  构造函数

  创建对象,包括定义 var obj = {}、 工厂创建、 和 构造函数。

工厂创建即在创建函数中, 定义对象, 并给对象赋属性和方法, 最后return出此对象。

构造函数,类似Java中类的构造函数, 函数中, 使用this.xxx 来定义属性和方法,此处的this表示实例化时候的对象,

实例化语句 var obj = new constructor(args)。

 

  构造函数改造出定时器

  直接上代码,即在所有的属性和方法前添加this., 实现的功能与工厂一致:

                         

 

 

  构造函数中定义对象的方法, 为每个对象独有, 实际上此方法应该属于每个对象共有。

一来浪费内存,二来不符合对象行为抽象的逻辑。此问题就需要原型方法解决。

 

   原型方法

  原型 prototype,就是定义构造函数中,对象公共方法的手段, 

例如原型为 function constructor(){}; constructor.prototype.hello = function(){console.log("hello")}

则任何实例化的对象 var a = new constructor();  都可以调用 a.hello();

 

  原型方法优化构造函数实现的定时器

  直接上代码,功能与构造函数一致:

                         

 

 

 

 

 

 

你可能感兴趣的文章
Javascript异步数据的同步处理方法
查看>>
9. Palindrome Number(回文数)(leetcode)
查看>>
Dapper:The member of type SeoTKD cannot be used as a parameter Value
查看>>
音频管理控制器
查看>>
JAVA设计模式之责任链模式
查看>>
映射docker搭建
查看>>
飞凌OK6410开发板移植u-boot官方最新版u-boot-2012.10.tar.bz2
查看>>
[转] Lodash
查看>>
【leetcode】437. Path Sum III
查看>>
【leetcode】486. Predict the Winner
查看>>
初见jQuery EasyUI
查看>>
再springMVC中自定义文件上传处理解决与原spring中MultipartResolve冲突问题
查看>>
struts2文件上传,文件类型 allowedTypes
查看>>
mysql的分区和分表
查看>>
Azure系列2.1.9 —— CloudBlob
查看>>
数组与指针的区别
查看>>
01布尔模型&倒排索引
查看>>
Mysql 锁机制和事务
查看>>
MySQL之自定义函数实例讲解
查看>>
Hibernate错误:javax/persistence/EntityListeners
查看>>