javascript中函数作为参数调用的方法


Posted in Javascript onFebruary 09, 2015

本文实例讲述了javascript中函数作为参数调用的方法。分享给大家供大家参考。具体分析如下:

先来看示例:

function Map(){
var obj = {};

this.put = function(key, value){
obj[key] = value;
}

this.eachMap = function(fn){
for(var attr in obj){
fn(attr, obj[attr]);
}
}

}
var m = new Map();
m.put('01', 'abc');
m.put('02', 1024);
m.put('03', true);
m.put('04', 0);
m.put('05', false);

m.eachMap(function(key, value){
alert(key + " : " + value);
});

这段代码执行的顺序是:从上往下顺序解释执行,这是JS的规定。
这里主要说明一下m.eachMap()中函数做为参数是怎么传递并执行的:

step1:执行到m.eachMap这个方法的时候,JS会去找对应的this.eachMap这个方法;
step2:找到this.eachMap这个方法,会根据函数体内的语句顺序执行;
step3:当执行到fn(attr, obj[attr]);的时候,他会返回到for语句执行;注意在返回for语句执行之前,attr是没有值的;从for语句返回之后,attr的值就有了,为‘01',而obj[attr]的值也有了,为‘abc';
step4:接着,fn(attr, obj[attr]);会返回到m.eachMap这个方法的参数函数中,即

function(key, value){
alert(key + " : " + value);
}

attr替换key,obj[attr]替换value,并执行alert语句,输出。

step5:继续执行for循环,重复执行step4,并输出,直到结束。

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
用Javascript同时提交多个Web表单的方法
Dec 26 Javascript
javascript 事件绑定问题
Jan 01 Javascript
在浏览器中获取当前执行的脚本文件名的代码
Jul 19 Javascript
2则自己编写的jQuery特效分享
Feb 26 Javascript
js代码实现无缝滚动(文字和图片)
Aug 20 Javascript
AngularJS入门教程引导程序
Aug 18 Javascript
js获取指定字符前/后的字符串简单实例
Oct 27 Javascript
Node.js 的模块知识汇总
Aug 16 Javascript
vuex的使用及持久化state的方式详解
Jan 23 Javascript
JS面向对象实现飞机大战
Aug 26 Javascript
如何使用CocosCreator对象池
Apr 14 Javascript
详解CocosCreator消息分发机制
Apr 16 Javascript
javascript自动生成包含数字与字符的随机字符串
Feb 09 #Javascript
angularJS 中$scope方法使用指南
Feb 09 #Javascript
Javascript动态创建div的方法
Feb 09 #Javascript
angularJS 中$attrs方法使用指南
Feb 09 #Javascript
JavaScript实现获取dom中class的方法
Feb 09 #Javascript
angularJS 中input示例分享
Feb 09 #Javascript
angularJS提交表单(form)
Feb 09 #Javascript
You might like
探讨:如何使用PHP实现计算两个日期间隔的年、月、周、日数
2013/06/13 PHP
php实现json编码的方法
2015/07/30 PHP
phpStudy访问速度慢和启动失败的解决办法
2015/11/19 PHP
PHPExcel实现的读取多工作表操作示例
2020/04/14 PHP
有关js的变量作用域和this指针的讨论
2010/12/16 Javascript
Javascript动态创建表格及删除行列的方法
2015/05/15 Javascript
第九章之路径分页标签与徽章组件
2016/04/25 Javascript
超链接怎么正确调用javascript函数
2016/05/23 Javascript
jquery+ajax实现直接提交表单实例分析
2016/06/17 Javascript
JavaScript基础重点(必看)
2016/07/09 Javascript
浅谈JS运算符&&和|| 及其优先级
2016/08/10 Javascript
Bootstrap整体框架之CSS12栅格系统
2016/12/15 Javascript
js微信分享实现代码
2020/10/11 Javascript
js+html获取系统当前时间
2017/11/10 Javascript
JavaScript设计模式之装饰者模式实例详解
2019/01/17 Javascript
微信小程序如何利用getCurrentPages进行页面传值
2019/07/01 Javascript
three.js利用卷积法如何实现物体描边效果
2019/11/27 Javascript
[00:37]2016完美“圣”典风云人物:rOtk宣传片
2016/12/09 DOTA
Python 实现某个功能每隔一段时间被执行一次的功能方法
2018/10/14 Python
python输出pdf文档的实例
2020/02/13 Python
Selenium自动化测试工具使用方法汇总
2020/06/12 Python
Keras 切换后端方式(Theano和TensorFlow)
2020/06/19 Python
关于HTML5+ API plusready的兼容问题
2020/11/20 HTML / CSS
Lands’ End英国官方网站:高质量男女服装
2017/10/07 全球购物
印度网上药店:1mg
2017/10/13 全球购物
写自荐信有哪些不宜?
2013/10/17 职场文书
护士自我鉴定怎么写
2014/02/07 职场文书
自动化专业毕业生求职信
2014/06/18 职场文书
安全责任书怎么写
2014/07/28 职场文书
作文评语怎么写
2014/12/25 职场文书
研究生给导师的自荐信
2015/03/06 职场文书
2015年教研组工作总结
2015/05/04 职场文书
2016中秋节问候语
2015/11/11 职场文书
《珍珠鸟》教学反思
2016/02/16 职场文书
承诺书的内容有哪些,怎么写?
2019/06/21 职场文书
使用canvas对video视频某一刻截图功能
2021/09/25 HTML / CSS