关于匿名函数的一个小问题
今天写了一段代码:
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啊,为啥呢
分析错误原因:代码太多了,没有顾全大局
最后看了下开头:才想起来这是个匿名函数.............................................................................