什么是函数 函数,是一个大型程序中的某部份代码,由一个或多个语句块组成.它负责完成某项特定任务,而且相较于其他代码,具备相对的独立性.(维基百科) 函数的特点 第一类对象 在JavaScript世界中函数是一等公民,它不仅拥有一切传统函数的使用方式(声明和调用),而且可以做到像简单值一样赋值.传参.返回,这样的函数也称之为第一级函数(First-class Function).不仅如此,JavaScript中的函数还充当了类的构造函数的作用,同时又是一个Function类的实例(instance…
回调模式 上一篇,对JavaScript函数进行了大体的介绍,这一篇对一些在工作中经常遇到的情况进行扩展. 在工作中,我们经常遇到很多需求,比如现在有一个需求: 一栋10层的大楼,当我们在坐电梯时,电梯每上一层,每层的电梯显示屏上即时显示电梯当前所在的楼层. 这样我们可能不到1s,就想到了解决方案,只要电梯每上一层,把每一层的电梯显示屏数字 +1 ,代码核心如下: ```javascript function processArrayA(nums, scalar) { var arr = [];…
写在前面 不知不觉写到第10篇了.这篇写起来很忐忑,终于和高级搭上边了(呵呵),这篇我们 主要 说一下 JS 方法的部分高级用法(我知道的),笔者水平有限,难免有错.废话不多少,进入正文. 初始化 我们在看一些别人写的优秀的代码,特别是组件时,我们经常能发现有init或initializa这样的方法,它一般执行的都是初始化.那初始化一般都有几种呢,我们来一一介绍: 初始化对象 初始化对象,顾名思义,就是对带着一堆具体逻辑的对象进行初始化.直接上代码: ```javascript var Wr =…
总结 不知不觉写初涉JavaScript模式系列已经半个月了,没想到把一个个小点进行放大,竟然可以发现这么多东西. 期间生怕对JS的理解不到位而误导各位,读了很多书(个人感觉JS是最难的oo语言),也纠正了不少自己的观念和认知错误. 但是久而久之发现,偏离了我原本的思维,我原本的想法是把自己的知识碎片进行一个汇总然后参照现有书籍(权威)的逻辑罗列出来,而随着边看书边写博这种方式,我最初的思维完全被书作者的逻辑牵着走,导致文章没有了我预想的作用. 这一方面是由于我的阅历和经验包括处理问题的逻辑不到…
现代继承模式可表述为:其他任何不需要以类的方式考虑得模式. 现代继承方式#1 —— 原型继承之无类继承模式 function object(o) { function F() {}; F.prototype = o; return new F(); } function Person() { this.name = 'king'; } Person.prototype.getName = function () { return this.name; }; var papa = new Pers…
实现类式继承的目标是通过构造函数Child()获取来自于另外一个构造函数Parent()的属性,从而创建对象. 1.类式继承模式#1 —— 默认方式(原型指向父函数实例) function Parent(name) { this.name = name || 'king'; } Parent.prototype.say = function () { return this.name; }; function Child(name) { this.name = name; } function…
引子 这篇算是对第9篇中内容的发散和补充,当时我只是把模块模式中的一些内容简单的归为函数篇中去,在北川的提醒下,我才发觉这是非常不严谨的,于是我把这些内容拎出来,这就是这篇的由来. 什么是模块模式 在JavaScript中没有包(Package)的概念,而面对日益庞大的JavaScript代码,而这正促使模块化开发的迫切需求,所以也就诞生了JavaScript的模块模式, 最早这么叫的是老道,他称之为 模块模式 (Module Patterns). 模块模式提供了用于创建独立解耦的代码片段的工具…
什么是构造函数? 构造函数 是一种特殊的方法 主要用来在创建对象时初始化对象 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中 特别的一个类可以有多个构造函数 可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载 ---引自百度百科 在JavaScript中是没有类的,但是我们有构造函数(是不是很怪),很深的东西我也说不来,直接上代码: ```javascript //工厂模式 function createCat(name){ var o = {}; o.na…
尽量少用全局变量 大量使用全局变量会导致的后果 全局变量创建以后会在整个JavaScript应用和Web页面中共享.所有的全局变量都存在于一个全局命名空间内,很容易发生冲突 不知不觉创建了全局变量 其原因在于JavaScript的两个特性,第一个是JavaScript可直接使用变量而无需声明,第二个是JavaScript的暗示全局变量的概念,即任何变量如果未经声明,就为全局对象所有 为了避免我们无意间创建了全局变量 我们可以使用var声明变量 另一种创建暗示全局变量的反模式是带有var声明的链式…
Javascript 函数定义方式 1.function show() {     } 2.var cal = function() {     },必须先声明才能调用 示例: <html> <head> <script type="text/javascript" src="jquery-1.9.1.js"></script> <script type="text/javascript"&g…