关于匿名函数的一个小问题

今天写了一段代码:

var test = window.test = {}

(function(o){

})(test)

运行后,发现firebug里面报错了,提示({}) is not a function,说这个不是函数,发现以前都是这样写的匿名函数啊,后来查啊查啊,终于发现了一个问题,是不是var test = window.test = {}后面没写分号,而将({}) 解析成一个函数变量名呢,这个函数是不存在,所以会报错(初步理解),然后在后面加个分号就可以了,以后写程序一定得规范,该有分号的地方就得加上,别偷懒

 

6.9

关于匿名函数的作用域问题:

在一个js文件里面定义了如下:

(function($){

 function gaq(){....}

})(jQuery)

在另一个js(advance)里面调用gaq()

开始思路分析:分析在第一个js里面可以调用啊,为啥第二个JS文件就不能调用呢,JS会按排从头到尾的顺序执行啊,第一个JS文件执行完了后,再执行第二个JS啊,为啥呢

分析错误原因:代码太多了,没有顾全大局

最后看了下开头:才想起来这是个匿名函数.............................................................................

 

原文地址:https://www.cnblogs.com/xiaohui108/p/2508746.html