我在使用 javascript 开发时注意到了一个不寻常的行为,有人可以向我解释一下吗?
我有这个 javascript 代码:
function MyFunction(){
var categoryId = 'abc';
var that = this;
$(_elem).parent().find('[data-id]').each(function(){
that.categoryId += $(this).data('id') + ',';
});
setEventsCategoryEx(categoryId, url, parentUrl);
}
这应该是错误的,因为 categoryId 不是全局的,所以它不应该使用“that.categoryId”来访问。
问题是:当执行第一次进入 each 方法时,输出 that.categoryId 会生成“abc”(我分配给本地 categoryId 变量的值)。
当鼠标离开 each 函数时,that.categoryId 和 categoryId 有不同的值: categoryId = "abc" that.categoryId = "abc+"
我不明白以下内容:它们应该是单独的变量,为什么它们以相同的值开头?
谢谢,奥斯卡
编辑:对不起,复制和粘贴时我忘记添加函数声明。它位于由“onclick”事件调用的函数内。