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操作URL函数修改版
Nov 07 Javascript
当jQuery1.7遇上focus方法的问题
Jan 26 Javascript
Javascript访问器属性实例分析
Dec 30 Javascript
js实现最短的XML格式化工具实例
Mar 12 Javascript
javascript实现百度地图鼠标滑动事件显示、隐藏
Apr 02 Javascript
javascript中substring()、substr()、slice()的区别
Aug 30 Javascript
jQuery的Read()方法代替原生JS详解
Nov 08 Javascript
微信小程序数据存储与取值详解
Jan 30 Javascript
JavaScript中字符串的常用操作方法及特殊字符
Mar 18 Javascript
D3.js实现简洁实用的动态仪表盘的示例
Apr 04 Javascript
基于JavaScript实现控制下拉列表
May 08 Javascript
vue 解决data中定义图片相对路径页面不显示的问题
Aug 13 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/11/12 PHP
php控制文件下载速度的方法
2015/03/24 PHP
PHP与服务器文件系统的简单交互
2016/10/21 PHP
如何将JS的变量值传递给ASP变量
2012/12/10 Javascript
JQuery动画和停止动画实例代码
2013/03/01 Javascript
表单类各种类型(文本框)失去焦点效果jquery代码
2013/04/26 Javascript
jQuery function的正确书写方法
2013/08/02 Javascript
jQuery实现模拟marquee标签效果
2015/07/14 Javascript
jQuery实现的数值范围range2dslider选取插件特效多款代码分享
2015/08/27 Javascript
jQuery遮罩层效果实例分析
2016/01/14 Javascript
基于js实现二级下拉联动
2016/12/17 Javascript
highcharts 在angular中的使用示例代码
2017/09/20 Javascript
Element-ui table中过滤条件变更表格内容的方法
2018/03/02 Javascript
vue基础之事件简写、事件对象、冒泡、默认行为、键盘事件实例分析
2019/03/11 Javascript
使用layui+ajax实现简单的菜单权限管理及排序的方法
2019/09/10 Javascript
Element InputNumber计数器的使用方法
2020/07/27 Javascript
[56:21]LGD vs IG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
pyenv命令管理多个Python版本
2017/03/26 Python
python实现稀疏矩阵示例代码
2017/06/09 Python
详解Python 实现元胞自动机中的生命游戏(Game of life)
2018/01/27 Python
pandas多级分组实现排序的方法
2018/04/20 Python
Pandas 按索引合并数据集的方法
2018/11/15 Python
python采集微信公众号文章
2018/12/20 Python
详解pandas.DataFrame.plot() 画图函数
2020/06/14 Python
Python数据可视化实现漏斗图过程图解
2020/07/20 Python
纯css3实现宠物小鸡实例代码
2018/10/08 HTML / CSS
Html5新标签datalist实现输入框与后台数据库数据的动态匹配
2017/05/18 HTML / CSS
历史专业学生的自我评价
2014/02/28 职场文书
财务审计整改报告
2014/11/06 职场文书
2014年工作总结与下年工作计划
2014/11/27 职场文书
小学生通知书评语
2014/12/31 职场文书
学校少先队工作总结
2015/08/12 职场文书
Mysql - 常用函数 每天积极向上
2021/04/05 MySQL
MySQL数据迁移相关总结
2021/04/29 MySQL
python如何正确使用yield
2021/05/21 Python
jupyter notebook保存文件默认路径更改方法汇总(亲测可以)
2021/06/09 Python