问:你会如何命名位于另一个函数内部的函数中的本地范围?JavaScript函数中的范围变量
让我解释一下:
我在与我想要使用的命名约定的麻烦。这里有一个简单的例子:
!function($, window, undefined) {
var Variables = {};
Variables.X = 1;
function myFunction() {
var local = {};
local.X = 2;
$('.myClass').each(function() {
var local = {};
local.X = 3;
});
}
}(jQuery, window);
现在,我已经决定,我将使用名为“变量”的对象,以容纳那些功能之间的任何共享的所有对象。如果您愿意,全局范围仅限于outer!function(){}定义内。
我决定使用名为“local”的对象来容纳函数内的所有对象。我的问题是函数内部函数的作用域。我想我必须以某种方式合并功能的名称,以使其具有独特性。我知道在这个微不足道的例子中,local.X是两个单独的变量。但我想单独命名它们,以便人们更容易读取它们。我不想6个月后回来,想知道local.X是什么。
增加问题是它是一个匿名函数,所以没有函数名称可以使“局部范围”唯一标识。我可能必须制定一条规则,如果在回调函数中需要一个变量,则给回调函数一个名称并将本地范围与该名称绑定(以某种方式)。
我明白你的问题(变量阴影),但我不明白你想要做什么以及为什么。 – 2013-02-24 20:04:42