我最近开始维护其他人的JavaScript代码.我正在修复错误,添加功能,并尝试整理代码并使其更加一致.
以前的开发人员使用两种声明函数的方法,如果背后有原因,我就无法解决.
这两种方式是:
var functionOne = function() {
// Some code
};
Run Code Online (Sandbox Code Playgroud)
function functionTwo() {
// Some code
}
Run Code Online (Sandbox Code Playgroud)
使用这两种不同方法的原因是什么?每种方法的优缺点是什么?有一种方法可以通过一种方法完成,而另一种方法无法完成吗?
据我所知,function foo() { aaa(); }只是var foo = function(){ aaa() }在JavaScript中.所以添加function foo() { bbb(); }应该覆盖foo变量,或忽略第二个定义 - 这不是重点.关键是应该有一个变量foo.
所以,在这个例子中,me变量应该没有被正确地从里面的方法解决,这是不是在资源管理器8 :-).我通过尝试将它们包装到另一个闭包中来实现这个例子,其中(var)me将是,但我很惊讶它没有必要:
var foo = {
bar1 : function me() {
var index = 1;
alert(me);
},
bar2 : function me() {
var index = 2;
alert(me);
}
};
foo.bar1(); // Shows the first one
foo.bar2(); // Shows the second one
Run Code Online (Sandbox Code Playgroud)
演示:http: …