首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将this上下文传递给函数?

如何将this上下文传递给函数?
EN

Stack Overflow用户
提问于 2010-09-03 02:31:17
回答 3查看 181.7K关注 0票数 234

我认为这是我可以很容易地搜索到的东西,但也许我没有问对问题……

如何在给定的javascript函数中设置"this“所指的内容?

例如,就像jQuery的大多数函数一样:

代码语言:javascript
复制
$(selector).each(function() {
   //$(this) gives me access to whatever selector we're on
});

如何编写/调用我自己的独立函数,这些函数在被调用时具有适当的"this“引用?我使用的是jQuery,所以如果有一种特定于jQuery的方法,那将是最理想的。

EN

回答 3

Stack Overflow用户

发布于 2010-09-03 02:37:03

Use function.call

代码语言:javascript
复制
var f = function () { console.log(this); }
f.call(that, arg1, arg2, etc);

其中,that是您希望函数中的this成为的对象。

票数 49
EN

Stack Overflow用户

发布于 2019-03-19 18:44:41

另一个基本示例:

不工作:

代码语言:javascript
复制
var img = new Image;
img.onload = function() {
   this.myGlobalFunction(img);
};
img.src = reader.result;

工作中:

代码语言:javascript
复制
var img = new Image;
img.onload = function() {
   this.myGlobalFunction(img);
}.bind(this);
img.src = reader.result;

所以基本上:只需将.bind(这)添加到您的函数

票数 25
EN

Stack Overflow用户

发布于 2017-06-16 02:11:25

您可以使用bind函数在函数中设置this的上下文。

代码语言:javascript
复制
function myFunc() {
  console.log(this.str)
}
const myContext = {str: "my context"}
const boundFunc = myFunc.bind(myContext);
boundFunc(); // "my context"
票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3630054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档