js中的(function(){...})()


作为一个前端小白,今天遇到了一个恶心我一天的问题,先看我的代码。

for(var i=0;i<addrs.length;i++){var info = "<div>订单数量:"+addrs[i][1]+"</div>";myGeo.getPoint(addrs[i][0], function(point){marker = new BMap.Marker(point);map.addOverlay(marker);console.log(info);addClickHandler(info,marker,point);}, "上海市");
}

我的想法是程序从上往下执行 每次==addClickHandler()里的info值都会不一样,但是console.log(info)==每次的打印结果都是一样的,我一个人默默捣鼓(debug)了半天,发现代码的执行顺序跟我预想的不一样。我百度了半天找到了一种解决办法,把循环体里的代码用(function(){...})() 包裹,代码如下,

for(var i=0;i<addrs.length;i++){(function(){var info = "<div>订单数量:"+addrs[i][1]+"</div>";myGeo.getPoint(addrs[i][0], function(point){marker = new BMap.Marker(point);map.addOverlay(marker);console.log(info);addClickHandler(info,marker,point);}, "上海市");})()
}

这样每次循环我的输出结果都是不一样的。虽然解决了问题 但是 至于为什么我还是不明白。希望知道的大佬能在我的评论区留言。

转载于:https://www.cnblogs.com/zcj430430/p/10622206.html

js中的(function(){...})()相关推荐

  1. 2017.4.07 js 中的function 实现的方式

    函数分为FD (函数定义),FE(函数表达式) ,函数构造器得到的函数 (1)  FD 的栗子: function getTaste(){ ....... } 解析器遇到上面的function关键字, ...

  2. js中,(function(){})()的用法解析

    (function($){...})(jQuery)  含义 经常用,今天总结一下,下文摘自某网友的总结: (function($){...})(jQuery)实际上是匿名函数,不懂得朋友可以继续往下 ...

  3. JS中[感叹号]function(){}()的理解

    这种写法,是一种`立即执行函数`的写法,即IIFE等设计模式.这种函数在函数定义的地方就直接执行了. 理解IIFE设计模式的关键是要认识到,在ES6之前,JavaScript仅具有函数作用域(因此缺少 ...

  4. java js中 function函数报错_浅析JS中对函数function的理解(基础篇)

    正文:我们知道,在js中,函数实际上是一个对象,每个函数都是Function类型的实例,并且都与其他引用类型一样具有属性和方法.因此,函数名实际上是指向函数对象的指针,不与某个函数绑定.在常见的两种定 ...

  5. Javascript 中的 Function对象

    在 js 中 函数 Function(大写) 就是一个对象.在 javascript 中没有函数 reload (重载)的概念. 我们看下面这个,结果应该是什么呢? <html><h ...

  6. js base64 php,php中的base64decode 与js中的互相转换

    php中的base64decode 与js中的相互转换 function utf16to8(str) { var out, i, len, c; out = ""; len = s ...

  7. 【在JS中如何获取图片路径以及更改图片】

    //页面级内容<button id="div1">时间</button> img id="myimage" src="./im ...

  8. js中(function(){}()),(function(){})(),$(function(){});之间的区别

    1. (function(){}())与(function(){})() 这两种写法,都是一种立即执行函数的写法,即IIFE (Immediately Invoked Function Express ...

  9. js中function参数默认值

    --在dreamweaver做网站时,函数定义是在一个*.js文件中,其中定义了一个func,有四个参数,function func(string1,url,flag,icon),然后在另一个asp中 ...

最新文章

  1. 区块链相关论文研读6: FASTKITTEN,关于比特币的实用智能合约
  2. 在Git存储库中查找并恢复已删除的文件
  3. mysql基础(九) 索引和视图
  4. 内存溢出和内存泄漏的区别、产生原因以及解决方案 转
  5. Linux 2.4调度系统分析--转
  6. Surface pro镜像恢复详细图文步骤 2021最新版
  7. 上线4年从畅销Top 200到Top 20,这款刀塔传奇like卡牌正在美国市场逆流而上
  8. 微软已暂时停用你的帐户_Apple ID 被停用如何解决?
  9. FreeMarker的优点和缺点
  10. 如何下载coursera视频
  11. Internet 的50年口述历史七.摩登时代上
  12. mysql 没有三级模式两级映像_数据库三级模式/两级映像
  13. imdisk虚拟光驱装linux,怎么样通过虚拟光驱装Ubuntu系统?
  14. c语言迷宫算法入门,基于C语言实现的迷宫算法示例
  15. Luogu_P4556 雨天的尾巴【题解】树上差分 线段树合并
  16. 工具分享:pycharm-2019.1_windows正版最新(附下载链接)
  17. 中西宗教精神之比较研究
  18. 2019年 网络空间安全国赛真题 赛题分析
  19. 托福百日冲刺(五一记忆)(1)
  20. WIN7下破解锐捷无线共享上网(谨以此文献给浙理各位被锐捷搞疯掉的同学)

热门文章

  1. Android多媒体扫描过程(Android Media Scanner Prosess)
  2. 博客园成立了管理团队
  3. OpenCV 图像旋转
  4. Java 数组长度和访问
  5. centos7 启动流程图_Linux启动过程详解
  6. ubuntu系统安装gedit
  7. 多线程必须用到的线程池(什么时候用多线程)
  8. winformC# TreeView 点击父节点,子节点全选,
  9. 如何使用定时器settimeout、setInterval执行能传递参数的函数(转)
  10. 大数据时代 树大数据意识