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 相关文章推荐
自定义jQuery选项卡插件实例
Mar 27 Javascript
JavaScript程序开发之JS代码放置的位置
Jan 15 Javascript
jquery  实现轮播图详解及实例代码
Oct 12 Javascript
vue插件tab选项卡使用小结
Oct 27 Javascript
angularjs中ng-attr的用法详解
Dec 31 Javascript
jQuery插件jquery.kxbdmarquee.js实现无缝滚动效果
Feb 15 Javascript
基于node.js之调试器详解
Aug 22 Javascript
微信小程序block的使用教程
Apr 01 Javascript
JavaScript日期工具类DateUtils定义与用法示例
Sep 03 Javascript
创建Vue项目以及引入Iview的方法示例
Dec 03 Javascript
详解从0开始搭建微信小程序(前后端)的全过程
Apr 15 Javascript
Antd下拉选择,自动匹配功能的实现
Oct 24 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/25 PHP
浅析php变量作用域的一些问题
2013/08/08 PHP
列举PHP的Yii 2框架的开发优势
2015/07/03 PHP
php 实现Hash表功能实例详解
2016/11/29 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
PHP实现的最大正向匹配算法示例
2017/12/19 PHP
IE 条件注释详解总结(附实例代码)
2009/08/29 Javascript
jQuery 学习6 操纵元素显示效果的函数
2010/02/07 Javascript
jquery 得到当前页面高度和宽度的两个函数
2010/02/21 Javascript
js 弹出框只弹一次(二次修改之后的)
2013/11/26 Javascript
jquery实现不同大小浏览器使用不同的css样式表的方法
2014/04/02 Javascript
jquery+html5烂漫爱心表白动画代码分享
2015/08/24 Javascript
JavaScript实现url参数转成json形式
2016/09/25 Javascript
Bootstrop实现多级下拉菜单功能
2016/11/24 Javascript
Vue表单验证插件的制作过程
2017/04/01 Javascript
JavaScript实现form表单的多文件上传
2020/03/27 Javascript
js实现1,2,3,5数字按照概率生成
2017/09/12 Javascript
vue结合Echarts实现点击高亮效果的示例
2018/03/17 Javascript
vuex操作state对象的实例代码
2018/04/25 Javascript
深入浅析JS中的严格模式
2018/06/04 Javascript
JavaScript中七种流行的开源机器学习框架
2018/10/11 Javascript
详解为生产环境编译Angular2应用的方法
2018/12/10 Javascript
这应该是最详细的响应式系统讲解了
2019/07/22 Javascript
Python实现短网址ShortUrl的Hash运算实例讲解
2015/08/10 Python
Python的IDEL增加清屏功能实例
2017/06/19 Python
Windows下python3.6.4安装教程
2018/07/31 Python
详解Python的循环结构知识点
2019/05/20 Python
实例详解Python模块decimal
2019/06/26 Python
对tensorflow中cifar-10文档的Read操作详解
2020/02/10 Python
CSS3媒体查询(Media Queries)介绍
2013/09/12 HTML / CSS
Java如何获得ResultSet的总行数
2016/09/03 面试题
满月酒主持词
2014/03/27 职场文书
交通事故赔偿协议书
2014/10/16 职场文书
2015迎新晚会开场白
2015/05/29 职场文书
JavaScript小技巧带你提升你的代码技能
2021/09/15 Javascript
win10以太网连接不上怎么办?Win10连接以太网详细教程
2022/04/08 数码科技