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. Referenced file contains errors (http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_4.xsd).
  2. 关于MSSQL存储过程中使用游标的一个小例子(学习)
  3. 基于 Spring Security OAuth2和 JWT 构建保护微服务系统
  4. C++异常之异常说明
  5. 开源数据分析工具 CyberChef
  6. 求后序遍历(信息学奥赛一本通-T1339)
  7. php开发面试题---面试常用英语(你能介绍你自己吗?)
  8. 笔记本Windows7系统安装教程
  9. 未来科技计算机作文600字,未来科技作文600字
  10. extjs 调用金税COM接口
  11. hbase版本与Hadoop版本支持关系(官方)
  12. RMAN-06004、RMAN-20011
  13. Scrapy 入门教程
  14. html中hr标签有哪些属性,hr标签的属性有哪些?
  15. python爬虫超时重试_python爬虫怎么处理异常和超时?
  16. 论文阅读《Fast-MVSNet: Sparse-to-Dense Multi-View StereoWith Learned Propagation and Gauss-Newton Refine》
  17. Cadence创建异形焊盘教程(详细操作)
  18. Internet时间同步出错解决方法
  19. Spark使用Java读Hive写入HBase
  20. java 语言程序设计 李尊朝 第12章 Swing 组件

热门文章

  1. python furl模块 网址修改 参数解析
  2. MATLAB 成绩排序
  3. C++ 继承Employee类
  4. C++ 判断两个立方体是否相等
  5. 递归二分法php,PHP基于二分法实现数组查找功能示例【循环与递归算法】
  6. 一分钟学会看k线图_看K线图:阴跌如钝刀
  7. 超多树形结构的JavaScript菜单实例
  8. Java-Runoob:Java Stream、File、IO
  9. learning hdmi edid protocol
  10. python 12 socket 编程