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 相关文章推荐
免费空间广告万能消除代码
Sep 04 Javascript
jQuery操作元素css样式的三种方法
Jun 04 Javascript
使用JSON.parse将json字符串转换成json对象的时候会出错
Sep 04 Javascript
jQuery的基本概念与高级编程
May 14 Javascript
jQuery封装的屏幕居中提示信息代码
Jun 08 Javascript
微信小程序中form 表单提交和取值实例详解
Apr 20 Javascript
微信小程序 websocket 实现SpringMVC+Spring+Mybatis
Aug 04 Javascript
手把手教你用Node.js爬虫爬取网站数据的方法
Jul 05 Javascript
JavaScript设计模式之职责链模式应用示例
Aug 07 Javascript
Node中对非阻塞I/O、事件循环的知识点总结
Jan 05 Javascript
jQuery实现滑动开关效果
Aug 02 jQuery
cypress测试本地web应用
Jun 01 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 cli 小技巧
2013/06/03 PHP
php利用ZipArchive类操作文件的实例
2020/01/21 PHP
js的event详解。
2006/09/06 Javascript
actionscript与javascript的区别
2011/05/25 Javascript
jQuery在IE下使用未闭合的xml代码创建元素时的Bug介绍
2012/01/10 Javascript
javascript打印html内容功能的方法示例
2013/11/28 Javascript
js正则表达式中test,exec,match方法的区别说明
2014/01/29 Javascript
node.js中的url.format方法使用说明
2014/12/10 Javascript
浅谈jQuery页面的滚动位置scrollTop、scrollLeft
2015/05/19 Javascript
JS实现兼容各种浏览器的高级拖动方法完整实例【测试可用】
2016/06/21 Javascript
js中小数向上取整数,向下取整数,四舍五入取整数的实现(必看篇)
2017/02/13 Javascript
简单实现js拖拽效果
2017/07/25 Javascript
React如何将组件渲染到指定DOM节点详解
2017/09/08 Javascript
vue.js语法及常用指令
2017/10/29 Javascript
用ES6写全屏滚动插件的示例代码
2018/05/02 Javascript
vue-自定义组件传值的实例讲解
2018/09/18 Javascript
vue中实现动态生成二维码的方法
2020/02/21 Javascript
jQuery实现电梯导航模块
2020/12/22 jQuery
Python检测QQ在线状态的方法
2015/05/09 Python
python引用DLL文件的方法
2015/05/11 Python
查看TensorFlow checkpoint文件中的变量名和对应值方法
2018/06/14 Python
对Python中创建进程的两种方式以及进程池详解
2019/01/14 Python
python框架flask入门之环境搭建及开启调试
2020/06/07 Python
Lacoste澳大利亚官网:服装、鞋类及配饰
2018/11/14 全球购物
英国女性时尚品牌:Apricot
2018/12/04 全球购物
卡骆驰德国官方网站:Crocs德国
2019/03/29 全球购物
如何在发生故障的节点上重新安装 SQL Server
2013/03/14 面试题
经典演讲稿范文
2013/12/30 职场文书
大学生入党思想汇报
2014/01/01 职场文书
城市轨道交通工程职业规划书范文
2014/01/18 职场文书
市政管理求职信范文
2014/05/07 职场文书
党员批评与自我批评范文
2014/09/23 职场文书
2014年个人思想工作总结
2014/11/27 职场文书
入党团支部推荐意见
2015/06/02 职场文书
Python爬取用户观影数据并分析用户与电影之间的隐藏信息!
2021/06/29 Python
mysql 获取时间方式
2022/03/20 MySQL