精读JavaScript模式(二)】的更多相关文章

我在想知识点怎么去分类,原本计划一章节一篇,但这样会会显得长短不一.更主要的是看到哪写的哪更为随意.那么这一篇还是紧接第一篇进行知识梳理,上篇说到了更优化的for循环,现在继续聊聊其它的循环方式. 1.for-in循环 for-in循环又称之为枚举,常用于遍历非数组对象.虽然也可以用于遍历数组,但并不推荐这么去做,例如在for-in循环key值为数字的对象时,遍历顺序其实是不固定的,这点与for不同. var obj = { 3:"echo", 2:"25", 1:…
一.前言 惰性十足,这篇2月19号就开始写了,拖到了现在,就是不愿意花时间把看过的东西整理一下,其它的任何事都比写博客要有吸引力,我要反省自己. 从这篇开始,是关于JS对象创建模式的探讨,JS语言简单直观,并没有模块,包,私有属性,静态成员等语法特性.而这一大章将介绍一些有用的模式,例如命名空间,依赖声明,模块模式以及沙箱模式等.这些能帮助我们更好的组织代码,减轻全局污染问题. 二.命名空间模式(Namespace Pattern) 命名空间可以减少全局变量的数量,还能有效避免命名冲突以及名称前…
一.前言 为什么读这本书? 其实做前端开发,一个需求给不同工作经验的人去做,只要完工时间不算苛刻,大家都是能实现的.功能实现虽然大致相同,但当我们回归代码去看实现方式,代码书写的美观程度,以及实现的方法其实是不尽相同的.毕竟经验丰富的人,拿到一个需求,可能脑海里就浮现了多个可供选择的方案,而经验较浅的人,就更偏向于如何实现基本需求了.例如说到过滤一个数组,第一想到使用for循环,不会想到filter方法:再如做条件判断,首先想到if else,忽略掉了还有which case或Boolean?t…
一.前言 这篇开始主要介绍代码复用模式(原书中的第六章),任何一位有理想的开发者都不愿意将同样的逻辑代码重写多次,复用也是提升自己开发能力中重要的一环,所以本篇也将从“继承”开始,聊聊开发中的各种代码复用模式. 其实在上一章,我感觉这本书后面很多东西是我不太理解的,但我还是想坚持读完,在以后知识逐渐积累,我会回头来完善这些概念,算是给以前的自己答疑解惑. 二.类式继承VS现代继承模式 1.什么是类式继承 谈到类式继承或者类classical,大家都有所耳闻,例如在java中,每个对象都是一个指定…
一.前言 上个月底,爸爸因为事故突然离世,说心里话,现在看到'去世','爸爸'这样的字眼,眼泪都会忍不住在眼眶打转,还是需要时间治愈.最近也只是零碎的看了下东西,始终沉不下心去读书,直到今天还是决定捡起之前看的JS模式. 前面两篇博客大概记录了书中前两章节我觉得一些好用的知识,从这篇开始就是第三章--直接量和构造函数了,难度也不算大,最近下班了在公司花点时间慢慢写. 从第三篇开始,我想在介绍每个知识点前,先以概要的形式将这一部分介绍的东西以问题的形式列出来,方便大家带着问题去读,读完了再回头看问…
假期就这么结束了!十天假就有三天在路上,真的难受!想想假期除了看了两场电影貌似也没做什么深刻印象的事情.流浪地球,特效还是很赞,不过对于感情的描写还是逃不掉拖沓和尴尬的通病,对于国产科幻还是抱有支持的态度.疯狂的外星人相比读大学期间看的疯狂的赛车,荒诞感还是差了点,也许是我笑点太高...不过整体还是感觉比流浪地球值票价,个人观点吧. 开年来同事说自己小舅子年终奖税后18W,他这两天深受打击,我听完也深受打击,哎. 假期结束也该好好安排下今年的时间了,年底辞职的规划不变,加上未来几年要结婚,想想还…
一.前言 今天地铁上,看到很多拖着行李箱的路人,想回家了. 在上篇博客结尾,记录到了函数的几种创建方式,简单说了下创建差异,以及不同浏览器对于name属性的支持,这篇博客将从第四章函数的回调模式说起.我想了想,还是把一篇博客的知识点控制在五个以内,太长了我自己都懒得看,而且显得特别混杂.标题还是简要说下介绍了哪些知识,也方便自己以后查阅,那么开始. 二.函数的回调模式 1.什么是函数回调模式? 当调用函数时,我们可以将函数作为参数传入到需要调用的函数中,例如我们为函数A传入一个函数B,当函数A执…
一.前言 放了个元旦,休息了三天,加上春运抢票一系列事情的冲击,我感觉我的心已经飞了.确实应该收收心,之前计划的学习任务也严重脱节了:我恨不得打死我自己. 在上篇博客中,笔记记录到了关于构造函数方面的一些写法和用法,这篇博客,会从原书中数组直接量开始,自己读了下之前的博客,还是有点照搬概念的意思,想了下,还是得简化概念,按照自己的思路去写,那么开始. 二.数组直接量 概要:创建数组的两种方式,Array()创建的隐性问题 在JS中,数组也是对象,我们可以通过内置构造函数Array()创建数组,也…
var publisher = { // 订阅者数组 subscribers : { "any" : [] }, // 增加订阅者 on : function(type, fn, context){ var subscribers = this.subscribers; type = type || "any"; context = context || this; fn = typeof fn === "function" ? fn : con…
其实在写这篇文章的时候感觉自己已经落伍了,不过笔者在百度上搜索"微信支付开发之扫描支付(模式二)后如何回调"寻找答案时,发现依旧有很多朋友没有解决这个问题,所以就把自己的解决思路分享给大家. 一.下载微信支付SDK(笔者以php发开为例,sdk包为WxpayAPI_php_v3.zip) 下载SDK包后解压,在解压目录下,我们会看到如下目录 二.查阅微信支付开发者文档后得知,微信扫码支付的demo即为example目录下的native.php文件 为了方便,我们要做的是将整个解压后的文…