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 相关文章推荐
判断是否输入完毕再激活提交按钮
Jun 26 Javascript
JAVASCRIPT IE 与 FF中兼容问题小结
Feb 18 Javascript
js获取指定日期周数以及星期几的小例子
Jun 27 Javascript
jQuery插件EnPlaceholder实现输入框提示文字
Jun 05 Javascript
自己动手制作基于jQuery的Web页面加载进度条插件
Jun 03 Javascript
JS关闭窗口时产生的事件及用法示例
Aug 20 Javascript
AngularJS用户选择器指令实例分析
Nov 04 Javascript
轻松学习Javascript闭包
Mar 01 Javascript
JavaScript之排序函数_动力节点Java学院整理
Jun 30 Javascript
解决mpvue + vuex 开发微信小程序vuex辅助函数mapState、mapGetters不可用问题
Aug 03 Javascript
简单说说angular.json文件的使用
Oct 29 Javascript
jQuery实现日历效果
Sep 11 jQuery
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
DOTA2 无惧惊涛骇浪 昆卡大型水友攻略
2020/04/20 DOTA
php类中的$this,static,final,const,self这几个关键字使用方法
2015/12/14 PHP
javascript 日期时间函数(经典+完善+实用)
2009/05/27 Javascript
jquery animate图片模向滑动示例代码
2011/01/26 Javascript
JS数学函数Exp使用说明
2012/08/09 Javascript
jQuery动态地获取系统时间实现代码
2013/05/24 Javascript
jQuery使用removeClass方法删除元素指定Class的方法
2015/03/26 Javascript
完美实现八种js焦点轮播图(下篇)
2020/04/20 Javascript
knockoutjs动态加载外部的file作为component中的template数据源的实现方法
2016/09/01 Javascript
BootStrap 动态表单效果
2017/06/02 Javascript
JS查找数组中重复元素的方法详解
2017/06/14 Javascript
如何使用webpack打包一个库library的方法步骤
2019/12/18 Javascript
js实现金山打字通小游戏
2020/07/24 Javascript
[36:33]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第二场 11.29
2020/12/02 DOTA
在Python中操作列表之List.pop()方法的使用
2015/05/21 Python
pandas DataFrame的修改方法(值、列、索引)
2019/08/02 Python
利用python-docx模块写批量生日邀请函
2019/08/26 Python
详解Python绘图Turtle库
2019/10/12 Python
Django 实现Admin自动填充当前用户的示例代码
2019/11/18 Python
pytorch实现对输入超过三通道的数据进行训练
2020/01/15 Python
django执行原始查询sql,并返回Dict字典例子
2020/04/01 Python
html5仿支付宝密码框的实现代码
2017/09/06 HTML / CSS
浅析HTML5中的download属性使用
2019/03/13 HTML / CSS
阿迪达斯荷兰官方网站:adidas荷兰
2018/03/16 全球购物
说一下mysql, oracle等常见数据库的分页实现方案
2012/09/29 面试题
什么是WEB控件?使用WEB控件有哪些优势?
2012/01/21 面试题
英文求职信结束语大全
2013/10/26 职场文书
地球一小时倡议书
2014/04/15 职场文书
个人授权委托书范本格式
2014/10/12 职场文书
个人作风建设自查报告
2014/10/22 职场文书
求职简历自我评价范文
2015/03/10 职场文书
观看焦裕禄观后感
2015/06/09 职场文书
记者节感言
2015/08/03 职场文书
2016年中学端午节主题活动总结
2016/04/01 职场文书
送给客户微信问候语!
2019/07/04 职场文书
TaiShan 200服务器安装Ubuntu 18.04的图文教程
2022/06/28 Servers