gpt4 book ai didi

javascript - 有关闭问题。似乎无法解决。请指教

转载 作者:行者123 更新时间:2023-11-28 16:20:25 27 4
gpt4 key购买 nike

我有这个代码:

  _trackit: function(){
for(var key in this.items.sublinks){
switch(key){
case 'shoes':
for(var innerkey in this.items.sublinks[key]){
(function(){
$(innerkey).observe('click', (function(e){
Event.stop(e);
someClass.click_link( this.items.sublinks[key][innerkey],false)
}));
)(this);
}
break;
}
}
}

我传入的哈希值的大小为 2。但是正如您猜测的那样,两个链接(因为 HashMap 到链接)正在传递要通过的最后一个哈希值(someClass.click_link <- 这里的值,this.item.sublinks[key][innerkey])。

我尝试过使用内部函数等...但有些事情搞砸了。如果我转到“内部函数深度”,则 this.items 返回 undefined

有什么帮助吗?

最佳答案

由于您将 this 作为参数传递,因此您只需为其创建一个参数 - 称之为 _this - 然后您就可以引用到 _this 而不是函数内的 this:

                (function(_this, innerkey){
$(innerkey).observe('click', (function(e){
Event.stop(e);
someClass.click_link( _this.items.sublinks[key][innerkey],false)
}));
)(this, innerkey);

(还有其他方法,但是上面的似乎是您将 this 作为参数传递时所采用的方法?这是一种完全值得尊敬的方法。)

编辑添加:根据 Rob W 的评论,我编辑了上面的内容,将 innerkey 添加为参数,因为否则内部 函数( e){...} 表达式将引用与外部函数相同的 innerkey 变量 — 该变量作为循环变量,可能会当内部函数实际运行时已经改变。将其作为参数传递会给内部表达式一个新的 innerkey 变量,该变量等于创建内部函数时的 innerkey

关于javascript - 有关闭问题。似乎无法解决。请指教,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9846921/

27 4 0
文章推荐: javascript - 我的 javascript 有问题,我不想验证已禁用的