1、回调函数:将函数A传给函数B,由函数B来执行A,则称A为回调函数。

例1:

例2

         function addone(a){return  a+;};          //定义一个回调函数
function mulitiply(a,b,c,callback) //定义一个可以调用回调函数的函数
{
var i,ar=new Array();
for(i=;i<;i++)
{
ar[i]=callback(arguments[i]*); //将输入参数乘以2之后作为回调函数的参数执行。
}
return ar;
}
var myarr=mulitiply(,,,addone);
myarr; //[3, 5, 7]

指定输入参数个数

改进代码,使其可以忽略输入参数个数。将代码修改后如下:

         function addone(a){return  a+1;};          //定义一个回调函数
function mulitiply(an) //定义一个可以调用回调函数的函数
{
var i,ar =new Array(arguments.length-1);
if (typeof arguments[arguments.length-1]==="function")
for(i=0;i<arguments.length-1;i++)
ar[i]=arguments[arguments.length-1](arguments[i]*2); //将输入参数乘以2之后作为回调函数的参数执行。
return ar;
}
var myarr=mulitiply(1,2,3,addone); //这种方式要求回调函数放在参数的最后一个
myarr; //[3, 5, 7]
var myarr=mulitiply(1,2,3,4,addone); //这种方式要求回调函数放在参数的最后一个
myarr; //[3, 5, 7, 9]

不指定输入参数个数

效果如图:

2、返回函数的函数:执行的函数返回值是一个函数引用。

         function a()
{
function b()
{
return 'B';
};
return b; //返回一个函数的引用
}
var newfunct=a(); //获得一个函数的引用
typeof newfunct; //"function"
newfunct(); //"B"
a()(); //"B"; a()表示获取一个函数的引用,a()();表示执行获取引用的函数

返回函数的函数

3、重写自己的函数:将一个指向函数的变量指向另一个函数实现重写。

例1:

重写函数常常用于在一个函数执行时必须完成一些初始化工作,这样以后在调用函数就不必重复执行一些不必要的操作。

例2:

结果如下:

         var a=function()
{
function init(){document.writeln('进行初始化工作<br/>');};
function actuall(){ document.writeln('正式进行实际的操作<br/>');};
init(); //执行初始化工作
return actuall; //返回函数引用
} (); //立即运行,变量 a 指向函数actuall

重写函数例子

步骤分解如下:

在大函数内包含了两个小函数,其中 init 用于执行初始化函数,而大函数后面带了(),即大函数立即执行,首先执行了init初始化函数,再次将 actuall 函数的引用赋给了变量a,以后再调用 a 时,就只调用 actuall 函数,而不再执行 init 函数了。

javascript——对象的概念——函数 3 (使用技巧)的更多相关文章

  1. javascript——对象的概念——函数 2 (内建函数与类型转换)

    javascript 有许多内建函数,用于各种操作,以下为常用的内建方法. 1.parseInt(object,int):将输入的 int 进制的值 object 转换为 10 进制的数值: obje ...

  2. javascript——对象的概念——函数 1 (函数对象的属性和方法)

    一.创建函数 函数是一种对象:Function类 是对象,可以通过 Function 实例化一个函数,不过最多的还是利用 function 来创建函数. 方式一:利用 Function类 来实例化函数 ...

  3. javascript——对象的概念——创建对象与销毁对象

    一.创建对象 1.创建空对象 方式一: var o ={};o; //Object {} typeof(o); //"object" 方式二: var o=new Object() ...

  4. javascript——对象的概念——Object(未完)

    http://www.blogjava.net/zkjbeyond/archive/2006/04/16/41336.html javascript中对象只包括属性和方法两种成员.ECMA-262 把 ...

  5. javascript——对象的概念——内建对象

    包括内建对象的所有对象都是Object对象的子对象. 1.Array():构建数组的内建构造器函数 例:创建数组方式有两种: 2.Boolean:是对象,与基本数据类型 布尔值 不相同 例:创建Boo ...

  6. 前端学习 第二弹: JavaScript中的一些函数与对象(1)

    前端学习 第二弹: JavaScript中的一些函数与对象(1) 1.apply与call函数 每个函数都包含两个非继承而来的方法:apply()和call(). 他们的用途相同,都是在特定的作用域中 ...

  7. 函数可以作为Javascript对象(哈希表)的键吗

    一般Javascript书在讲解对象时,都指出Javascript中的对象可以作为哈希表,存储键值数据.通常情况下,键为字符串,如果键是数字的话,实际上在内部也会转换为字符串. 比如 var o = ...

  8. JavaScript总体的介绍【JavaScript介绍、定义函数方式、对象类型、变量类型】

    什么是JavaScript? 我们可以从几个方面去说JavaScript是什么: 基于对象 javaScript中内置了许多对象供我们使用[String.Date.Array]等等 javaScrip ...

  9. 深入浅出javascript(二)函数和this对象

    一.函数对象的属性和方法 函数是一种数据类型,也是对象,这一点很明确.因此,函数对象也可以添加属性和方法,但是这里的属性和方法是静态的,之所以这样说,就是为了区别构造函数. 示例如下: ①创建一个空的 ...

随机推荐

  1. Codeforces Round #370 (Div. 2) A , B , C 水,水,贪心

    A. Memory and Crow time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  2. ANT+JMETER + Jenkins 集成1

    新建任务注意添加invoke Ant,新建成功后运行就可以啦

  3. pandas 读取excel的指定列

    不管对于read_csv还是read_excel,现在都有: usecols : int or list, default None If None then parse all columns, I ...

  4. java读取Oracle的BFile文件

    /** * * @author Jasmine */public class GetBlob{ public static void main(String[] args) { Connection ...

  5. 从性能的角度谈SQL Server聚集索引键的选择

      简介 在SQL Server中,数据是按页进行存放的.而为表加上聚集索引后,SQL Server对于数据的查找就是按照聚集索引的列作为关键字进行了.因此对于聚集索引的选择对性能的影响就变得十分重要 ...

  6. 51nod 1215 单调栈/迭代

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1215 1215 数组的宽度 题目来源: Javaman 基准时间限制:1 ...

  7. 理解WCF(第一部分,有參考他人)

    依舊不廢話  上乾貨! 1.什么是WCF? WCF全名是:WindowsCommunication Foundation ,是一个运行库和一组 API,用于创建在服务与客户端之间发送消息的系统.它使用 ...

  8. 【.Net】关于内存缓存的一点记录

    引言 最近看了内存缓存的一些介绍和用法,在此做个简单记录. MemoryCache 类 MemoryCache 类是.Net 4.0推出的类库,主要是为了方便在Winform和Wpf中构建缓存框架的. ...

  9. 一种基于Rsync算法的数据库备份方案设计

    根据容灾备份系统对备份类别的要求程度,数据库备份系统可以分为数据级备份和应用级备份.数据备份是指建立一个异地的数据备份系统,该系统是对原本地系统关键应用数据实时复制.当出现故障时,可由异地数据系统迅速 ...

  10. 安装Windows系统指南

    安装系统指南 WIN10PE内核与WIN8PE内核区别: Win10PE内核支持NVME(M.2)新硬盘,WIN8PE不支持NVME. 但是WIN8PE对老机器的适配更好一些,其他功能均一致. 多一个 ...