gpt4 book ai didi

Javascript:将 "this"作为 "dom"对象传递,而不是将 "this"作为 "this"函数传递

转载 作者:行者123 更新时间:2023-11-30 10:35:45 25 4
gpt4 key购买 nike

这可能很难解释。让我们看看这个:

<a onclick="jsFunction (1, 'a', function() { callback(this); }"></a>

回调需要知道 <a>这个电话是从哪里来的。但是这个“这个”并不是我想要的那个“这个”。我知道有一些解决方法:

<a onclick="var _this = this; jsFunction (1, 'a', function() { callback(_this); }"></a>

但我觉得不吉利。有更好的解决方案吗?

最佳答案

你可以使用 bind 做一些不那么尴尬的事情但不多:

<a onclick="jsFunction (1, 'a', (function(){callback(this);}).bind(this))"></a>

这是通常最好不要在 HTML 中内联 javascript 代码的众多原因之一。

我通常更愿意这样写:

<a id=someid></a>

<script>
$('#someid').click(function(){
var _this=this;
jsFunction (1, 'a', function() { callback(_this); });
});
</script>

关于Javascript:将 "this"作为 "dom"对象传递,而不是将 "this"作为 "this"函数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14121333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com