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. spring mvc 官方下载

    1.进入https://spring.io 2.选择projects选项卡 3.点击spring frawewoek 4.选择右中方的Reference 5.选择2.3章节 6.点击 Distribu ...

  2. poj 2116 Death to Binary? 模拟

    Death to Binary? Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 1707   Accepted: 529 D ...

  3. 总结django知识点

    一.视图函数:     请求对象-----------request:           1.HttpRequest.body:         请求原数据           2.HttpRequ ...

  4. 初始化dataframe

    由字典生成dataframe: >>> d = {'col1': [1, 2], 'col2': [3, 4]} >>> df = pd.DataFrame(dat ...

  5. WinDBG__独立安装文件

    debugging tools for windows 1. 来自于网页:http://rxwen.blogspot.hk/2010/04/standalone-windbg-v6120002633. ...

  6. 安装rackspace private cloud --3 Deployment host

    on deploy host: 在deploy host上安装 Ubuntu Server 14.04 (Trusty Tahr) LTS 64-bit # apt-get install aptit ...

  7. (四) tensorflow笔记:常用函数说明

    tensorflow笔记系列: (一) tensorflow笔记:流程,概念和简单代码注释 (二) tensorflow笔记:多层CNN代码分析 (三) tensorflow笔记:多层LSTM代码分析 ...

  8. Enum Binding ItemsSource In WPF

    Enum Binding ItemsSource In WPF   在WPF中枚举绑定到ItemsSource. 一.通过ObjectDataProvider 获取Enum数据源 首先我们定义一个En ...

  9. js中scrollIntoView()的用法

    一. 什么是scrollIntoView scrollIntoView是一个与页面(容器)滚动相关的API 二. 如何调用 element.scrollIntoView() 参数默认为true 参数为 ...

  10. Windows 10 SDK 10.0.10158

    昨天微软发布了Windows 10 SDK 10158版本: http://blogs.windows.com/buildingapps/2015/06/30/windows-10-sdk-previ ...