随笔分类 -  JavaScript

javascirpt
摘要:在JS中可以使用代理来实现单例模式。如创建唯一DIV的场景: 通过代理ProxySingleCreateDiv实现了创建唯一Div。它的好处就是创建Div的函数CreateDiv并不需要管是否曾经创建过该对象,一切业务逻辑交给代理来处理。 模拟这样的场景,如果创建Div的时候不是页面加载的时候预先创 阅读全文
posted @ 2016-09-28 23:19 SpeedHorse 阅读(325) 评论(0) 推荐(0)
摘要:为了避免全局变量被污染,可采用加命名空间和闭包封装方式进行私有化。 一、使用命名空间 将某个变量变成某个命名空间下私有变量 上述等价于 这样就定义了MyApp命名空间下的两个属性event和dom. 二、使用闭包 将name和age属性封装起来,外部无法访问。 阅读全文
posted @ 2016-09-28 22:52 SpeedHorse 阅读(192) 评论(0) 推荐(0)
摘要:一、AOP(面向切面编程) 二、currying 函数柯里化 currying又称部分求值。过程中不进行求值进行数值的保持,在最后一步进行求值。 如: 输出结果600,在前3个函数调用的时候把值保持进数组,在最后一步进行数组求和。 三、uncurring 一个对象借用领另一个对象的方法或属性 将Ar 阅读全文
posted @ 2016-09-17 16:56 SpeedHorse 阅读(198) 评论(0) 推荐(0)
摘要:假设页面有上有5个div节点,通过循环给每个div绑定onclick实现弹出对应的编号。代码如下: 运行后发现点击所有div都弹出6。原因是div节点onclick是异步触发的,触发的时候for循环早已结束,此时变量i的值是5。 解决办法就是采用闭包,修改下JS代码如下: 书上还有一个例子,Obje 阅读全文
posted @ 2016-09-13 22:55 SpeedHorse 阅读(254) 评论(0) 推荐(0)
摘要:1、借用构造函数 2、arguments增删元素 arguments虽然有“下标”,但并非真正的数组,如果进行增删元素,需要借用Array.prototype的一系列方法。 新增: 注:实现函数的方法的借用,需要满足两点:对象本身要可以存取属性,对象的Length属性可读写 阅读全文
posted @ 2016-09-13 22:05 SpeedHorse 阅读(141) 评论(0) 推荐(0)
摘要:使用Function.prototype.bind来包装func函数 1、简化版的bind 2、含参数的bind 注: 1)arguments对象: arguments 对象并不是一个数组,访问单个参数的方式与访问数组元素的方式相同。 2)shift用法:用于把数组的第一个元素从其中删除,并返回第一 阅读全文
posted @ 2016-09-13 21:51 SpeedHorse 阅读(133) 评论(0) 推荐(0)
摘要:还是以鸭子唱歌为例 1、prototype 给对象添加方法或属性 给定义的Duck和 Chicken添加sound的方法 2、typeof和instanceof用法 只有具有sound方法的动物才能唱歌 1)typeof 用来检测给定变量的数据类型,可能的返回值: 1. 'undefined' 这个 阅读全文
posted @ 2016-09-12 00:48 SpeedHorse 阅读(143) 评论(0) 推荐(0)