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中this关键字使用方法详解
Mar 08 Javascript
Js Jquery创建一个弹出层可加载一个页面
May 08 Javascript
html文档中的location对象属性理解及常见的用法
Aug 13 Javascript
js中不同的height, top的区别对比
Sep 24 Javascript
jQuery仅用3行代码实现的显示与隐藏功能完整实例
Oct 08 Javascript
js匿名函数作为函数参数详解
Jun 01 Javascript
AngularJS入门教程一:路由用法初探
May 27 Javascript
JavaScript实现二叉树的先序、中序及后序遍历方法详解
Oct 26 Javascript
如何解决vue2.0下IE浏览器白屏问题
Sep 13 Javascript
js的对象与函数详解
Jan 21 Javascript
微信小程序开发摇一摇功能
Nov 22 Javascript
JS中的const命令你真懂它吗
Mar 08 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数组
2006/10/09 PHP
PHP 简单日历实现代码
2009/10/28 PHP
解析PHP处理换行符的问题 \r\n
2013/06/13 PHP
php获取bing每日壁纸示例分享
2014/02/25 PHP
destoon安装出现Internal Server Error的解决方法
2014/06/21 PHP
jQuery中文入门指南,翻译加实例,jQuery的起点教程
2007/01/13 Javascript
jquery插件之easing 动态菜单
2010/08/21 Javascript
JQuery操作元素的css样式
2015/03/09 Javascript
NodeJs模拟登陆正方教务
2017/04/28 NodeJs
Angular.js自动化测试之protractor详解
2017/07/07 Javascript
JS原生带小白点轮播图实例讲解
2017/07/22 Javascript
基于Vue开发数字输入框组件
2017/12/19 Javascript
JavaScript实现无限级递归树的示例代码
2019/03/29 Javascript
Python中列表的一些基本操作知识汇总
2015/05/20 Python
在Python的Django框架中编写错误提示页面
2015/07/22 Python
wxpython中Textctrl回车事件无效的解决方法
2016/07/21 Python
Python的CGIHTTPServer交互实现详解
2018/02/08 Python
Python socket实现的文件下载器功能示例
2019/11/15 Python
Python基于WordCloud制作词云图
2019/11/29 Python
Python解析多帧dicom数据详解
2020/01/13 Python
关于tf.nn.dynamic_rnn返回值详解
2020/01/20 Python
如何使用python记录室友的抖音在线时间
2020/06/29 Python
Python selenium模块实现定位过程解析
2020/07/09 Python
CSS3中的@keyframes关键帧动画的选择器绑定
2016/06/13 HTML / CSS
销售总监工作职责
2013/11/21 职场文书
诚信考试承诺书
2014/03/27 职场文书
大专生求职信
2014/06/29 职场文书
成本会计实训报告
2014/11/05 职场文书
2014年小学教学工作总结
2014/11/13 职场文书
2014年体育教学工作总结
2014/12/09 职场文书
综合测评个人总结
2015/03/03 职场文书
2015年艾滋病宣传活动总结
2015/03/27 职场文书
优秀党员主要事迹材料
2015/11/04 职场文书
导游词之凤凰古城
2019/10/22 职场文书
详解MySQL数据库千万级数据查询和存储
2021/05/18 MySQL
Python实现列表拼接和去重的三种方式
2021/07/02 Python