首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何调用将其绑定到jQuery对象的函数

如何调用将其绑定到jQuery对象的函数
EN

Stack Overflow用户
提问于 2011-12-21 18:51:47
回答 3查看 91关注 0票数 1

jQuery是否提供API来调用将this变量绑定到jQuery对象的函数?例如:

代码语言:javascript
运行
AI代码解释
复制
function log() {
    console.log(this);
}

$('body').execute(log); // prints the $('body') object in the console

我知道这可以通过将日志作为插件来解决,但我不想这样做,因为我需要调用的函数是泛型的,我不想将其绑定到jQuery。

编辑:

jQuery没有execute方法,它只是我添加的一个片段,用来演示我想要实现的目标。

编辑2:

我不是问如何解决这个问题( API已经覆盖了我),我只是问jQuery是否已经提供了类似的underscore.js。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-21 18:54:02

您可以“不”使用jQuery来实现任何东西,只需稍微“翻转”一下,并使用函数名.apply (object, arguments)

代码语言:javascript
运行
AI代码解释
复制
function func (arg1, arg2) {
   console.log ("ARG1: " + arg1);
   console.log ("ARG2: " + arg2);
   console.log ("using this: " + this.html ().length + "\n");
}

func.apply ($('body'), ['abc','123']);
func.apply ($('body')); // 2nd argument is optional

输出

代码语言:javascript
运行
AI代码解释
复制
ARG1: abc
ARG2: 123
using this: 51645

ARG1: undefined
ARG2: undefined
using this: 51645
票数 1
EN

Stack Overflow用户

发布于 2011-12-21 18:54:11

在你的作用域中,this不会是你想要的那样。不过,您可以使用带参数的匿名函数:

代码语言:javascript
运行
AI代码解释
复制
function log($this) {
    console.log($this);
}

$('body').execute(function() { log($(this)); }); // prints the $('body') object in the console
票数 1
EN

Stack Overflow用户

发布于 2011-12-21 19:45:59

看看这个:

代码语言:javascript
运行
AI代码解释
复制
    $.fn.prototype.execute = function() { 
      var f = function(){ console.log(this)};
     $.proxy( f   , this )()
    // that means something like 
    // f.call(this)   
   }

假设你有一个函数:

代码语言:javascript
运行
AI代码解释
复制
var f= function( arg1, arg2){ 
  console.log(this, arg1, arg2)
}

在那里,您可以调用传递上下文和参数的f

代码语言:javascript
运行
AI代码解释
复制
 f.call(document.body, arg1,arg2);

或参数作为apply方法的数组

代码语言:javascript
运行
AI代码解释
复制
f.apply(document.body, [arg1,arg2]);

在这两种情况下,您都会得到

代码语言:javascript
运行
AI代码解释
复制
>> <body>...</body>, valOfarg1, varOfarg2
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8594832

复制
相关文章

相似问题

领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文