Function模式 -- 深入理解javascript
/*
一、回调函数
函数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的更多相关文章
- 深入理解JavaScript系列
转自http://www.cnblogs.com/TomXu/archive/2011/12/15/2288411.html 深入理解JavaScript系列(1):编写高质量JavaScript代码 ...
- 深入理解JavaScript系列(转自汤姆大叔)
深入理解JavaScript系列文章,包括了原创,翻译,转载,整理等各类型文章,如果对你有用,请推荐支持一把,给大叔写作的动力. 深入理解JavaScript系列(1):编写高质量JavaScript ...
- [转]深入理解JavaScript系列
文章转自:汤姆大叔-深入理解JavaScript系列文章 深入理解JavaScript系列文章,包括了原创,翻译,转载,整理等各类型文章,如果对你有用,请推荐支持一把,给大叔写作的动力. 深入理解Ja ...
- [转载]深入理解JavaScript系列 --汤姆大叔
深入理解JavaScript系列文章,包括了原创,翻译,转载,整理等各类型文章,如果对你有用,请推荐支持一把,给大叔写作的动力. 深入理解JavaScript系列(1):编写高质量JavaScript ...
- 深入理解JavaScript系列(转载)
深入理解JavaScript系列 深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点 深入理解JavaScript系列(2):揭秘命名函数表达式 深入理解JavaSc ...
- 深入理解JavaScript系列(50):Function模式(下篇)
介绍 本篇我们介绍的一些模式称为初始化模式和性能模式,主要是用在初始化以及提高性能方面,一些模式之前已经提到过,这里只是做一下总结. 立即执行的函数 在本系列第4篇的<立即调用的函数表达式> ...
- 深入理解JavaScript系列(49):Function模式(上篇)
介绍 本篇主要是介绍Function方面使用的一些技巧(上篇),利用Function特性可以编写出很多非常有意思的代码,本篇主要包括:回调模式.配置对象.返回函数.分布程序.柯里化(Currying) ...
- 深入理解JavaScript中创建对象模式的演变(原型)
深入理解JavaScript中创建对象模式的演变(原型) 创建对象的模式多种多样,但是各种模式又有怎样的利弊呢?有没有一种最为完美的模式呢?下面我将就以下几个方面来分析创建对象的几种模式: Objec ...
- (转)深入理解JavaScript 模块模式
深入理解JavaScript 模块模式 (原文)http://www.cnblogs.com/starweb/archive/2013/02/17/2914023.html 英文:http://www ...
随机推荐
- activiti搭建(五)BPMN介绍
转载请注明源地址:http://www.cnblogs.com/lighten/p/5931207.html 对于BPMN我也不是十分清楚,目前也只是因为对于Modeler中不熟悉的组件查询,来对这部 ...
- MyEclipse 选中属性或方法后 相同的不变色了?
MyEclipse 选中属性或方法后 相同的不变色了? myeclipse-->windows-->java-->Editor-->Mark Occurrences 把所有的框 ...
- TFS build dotCover StyleCop
FS2010 – Customizing the Build Details View – Summary View http://blogs.msdn.com/b/jpricket/archive/ ...
- 记一下ajax里get与post的异同
以下均为个人笔记,如有错误,欢迎指正 get与post在写法上来讲基本上差不多 $.ajax({ type:"get",//get data:data, success:funct ...
- 状态可以通过动画切换的按钮--第三方开源--TickPlusDrawable
Android tickplusdrawable(TickPlusDrawable)在github上的项目主页是:https://github.com/flavienlaurent/tickplusd ...
- IntentService 串联 按顺序执行(此次任务执行完才执行下一个任务)
IntentService与Service的最大区别就是前者依次执行,执行完当前任务才执行下一个任务,后者并发执行 在IntentService里面不写onCreate方法 MainActivity: ...
- 通过URLHttpConnection方式来取得图片,并且显示在ImageView上
界面: 代码xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xml ...
- 7-ZIP实现数据高度压缩
From:http://www.cnblogs.com/killerlegend/p/3746395.html Author:KillerLegend Date:2013.5.22 选中文件,鼠标右键 ...
- 【easyui】--combobox--赋值和获取选中的值
//初始化下拉选框 $('#communityIdDiv').combobox({ url:basepath+"pushController/queryCommonityName" ...
- delphi 基础之二 面向对象概念初步
面向对象概念初步 •类自动生成 快捷键:ctrl+shift+c 1.类的定义 类是用户创建的数据类型,包括状态.表达式和一些操作.有3个组成部分,即字段.方法和属性.字段是类的内部数据变量,方法就是 ...