/*
一、回调函数
函数A作为另外一个函数B的参数
*/
var menuId = $("ul.nav").first().attr("id");
var request = $.ajax({
url: "script.php",
type: "POST",
data: { id: menuId },
dataType: "html"
});
//调用成功时的回调处理
request.done(function (msg) {
$("#log").html(msg);
});
//调用失败时的回调处理
request.fail(function (jqXHR, textStatus) {
alert("Request failed: " + textStatus);
});
/*
二、配置对象模式
如果一个函数的参数只有一个参数,且参数为对象
*/
addPerson({
username: "shichuan",
first: "Chuan",
last: "Shi"});
/*
三、返回函数
一个函数的返回值为另外一个函数,或者根据特定的条件灵活创建的新函数
*/
var setup = function () {
console.log(1);
return function () {
console.log(2);
}
}
var my = new setup();//
my();//
//或者
setup()();//1//2 //利用闭包的特性,记录私有静态属性
var myFunc = function () {
var count = 0;
return function () {
return ++count;
}
}
var myObj = new myFunc();
myObj();
myObj();
/*
四、偏应用
参数的传入工作分开进行
*/
/*
五、Currying
将多个参数的处理转化成单个参数的处理,类似链式调用
*/
function add(x, y) {
var a = x, b = y;
if (typeof b ==="undefined") {
return function (newY) {
return a + newY;
}
}
return x + y;
}
var add2000 = add(2000);
add2000(10); //
/*
六、立即执行的函数
*/
(function () {
//声明函数后,立即执行函数
}());
//以下4项:都是立即执行函数
!function () { }();
-function () { }();
+function () { }();
~function () { }();
/*
七、立即执行的刚创建对象里的函数
*/
({
name: "123",
init: function () { }
}).init();
/*
八、分支初始化
根据不同的条件(场景)初始化不同的代码,也就是所谓的条件语句赋值
*/
/*
九、自声明函数
一般是在函数内部,重写同名函数代码
*/
/*
十、内存优化
该模式主要是利用函数的属性特性来避免大量的重复计算
*/
var myFunc = function (param) {
if (!myFunc.cache[param]) {
var result = {};
// ... 复杂操作 ...
myFunc.cache[param] = result;
}
return myFunc.cache[param];
}; // cache 存储
myFunc.cache = {};

Function模式 -- 深入理解javascript的更多相关文章

  1. 深入理解JavaScript系列

    转自http://www.cnblogs.com/TomXu/archive/2011/12/15/2288411.html 深入理解JavaScript系列(1):编写高质量JavaScript代码 ...

  2. 深入理解JavaScript系列(转自汤姆大叔)

    深入理解JavaScript系列文章,包括了原创,翻译,转载,整理等各类型文章,如果对你有用,请推荐支持一把,给大叔写作的动力. 深入理解JavaScript系列(1):编写高质量JavaScript ...

  3. [转]深入理解JavaScript系列

    文章转自:汤姆大叔-深入理解JavaScript系列文章 深入理解JavaScript系列文章,包括了原创,翻译,转载,整理等各类型文章,如果对你有用,请推荐支持一把,给大叔写作的动力. 深入理解Ja ...

  4. [转载]深入理解JavaScript系列 --汤姆大叔

    深入理解JavaScript系列文章,包括了原创,翻译,转载,整理等各类型文章,如果对你有用,请推荐支持一把,给大叔写作的动力. 深入理解JavaScript系列(1):编写高质量JavaScript ...

  5. 深入理解JavaScript系列(转载)

    深入理解JavaScript系列 深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点 深入理解JavaScript系列(2):揭秘命名函数表达式 深入理解JavaSc ...

  6. 深入理解JavaScript系列(50):Function模式(下篇)

    介绍 本篇我们介绍的一些模式称为初始化模式和性能模式,主要是用在初始化以及提高性能方面,一些模式之前已经提到过,这里只是做一下总结. 立即执行的函数 在本系列第4篇的<立即调用的函数表达式> ...

  7. 深入理解JavaScript系列(49):Function模式(上篇)

    介绍 本篇主要是介绍Function方面使用的一些技巧(上篇),利用Function特性可以编写出很多非常有意思的代码,本篇主要包括:回调模式.配置对象.返回函数.分布程序.柯里化(Currying) ...

  8. 深入理解JavaScript中创建对象模式的演变(原型)

    深入理解JavaScript中创建对象模式的演变(原型) 创建对象的模式多种多样,但是各种模式又有怎样的利弊呢?有没有一种最为完美的模式呢?下面我将就以下几个方面来分析创建对象的几种模式: Objec ...

  9. (转)深入理解JavaScript 模块模式

    深入理解JavaScript 模块模式 (原文)http://www.cnblogs.com/starweb/archive/2013/02/17/2914023.html 英文:http://www ...

随机推荐

  1. 整合jQuery和Prototype遇到的问题.

    由于项目要在旧的服务器上面运行,而旧的服务器底层用了Prototype,所以需要解决jQuery和Prototype冲突的问题. 一.$符号冲突问题 这个还是很好解决的. jQuery.noConfl ...

  2. PHP XML笔记汇总

    一.XML Expat解析器 内建的Expat解析器使在PHP中处理XML文档成为可能. XML用于描述数据,其焦点是数据是什么.XML 文件描述了数据的结构. 在XML中,没有预定义的标签.您必须定 ...

  3. IE中console的正确使用方法

    本文出处原文链接 转载请注明出处 http://www.cnblogs.com/havedream/p/4519538.html 问题来源:最近在学习easyui,观看的视频教程是孙宇的<EAS ...

  4. [转发]导出Excel 格式 mso-number-format

    应用中经常会遇到要从系统或数据库中导出数据平面文件,一般是导出到txt,csv或excel.txt和csv一般用在系统间的数据交换,而 excel一般有较好的显示效果,可以按照一定的模板导出,导出就不 ...

  5. php怎么解析utf-8带BOM编码的json数据,php解析json数据返回NULL

    今天遇到一个问题,json_decode解析json数据返回null,试了各种方法都不行,最后发现,原来是json文件编码的问题. 当json_decode解析utf-8带BOM格式的json数据时, ...

  6. javascript中split字符串分割函数

    1. var ss=s.split("fs"); for(var i=0;i<ss.length;i++){ 处理每一个ss[i]; } 2. "2:3:4:5&q ...

  7. C# 调用系统API 内核 简单样例

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.R ...

  8. Why java main function is declared as static type?

    一个暂且说的过去的解释 The method is static because otherwise there would be ambiguity: which constructor shoul ...

  9. python去掉空行

    #用strip(),split()两个方法都可以判断空行 infile=open('/.../','r') outfile=open('/.../','w') for li in infile.rea ...

  10. mamp pro

    MAMP PRO Settings and Files /Library/Application Support/appsolute/MAMP PRO ~/Library/Application Su ...