是否有一种方法来传递一个jQuery函数作为参数

Is there a way to pass a jQuery function as a parameter?

本文关键字:一个 jQuery 函数 参数 一种 方法 是否      更新时间:2023-09-26

我有一个函数,我想传递一个附加到jQuery原型的自定义jQuery函数:$.fn。

例如,

$.fn.customFx = function() {
  //do something...    
}
function foo(func1) {
  //do something...
  $(selector).func1();
}
$(document).ready(function() {
  foo($.fn.customFx);
}

这种事可能吗?

function foo(func1) {
  func1.call( $(selector) );
}

您可以尝试将函数名作为字符串传递。试试这个。

$.fn.customFx = function() {
  //do something...    
}
function foo(func1) {
  //do something...
  $(selector)[func1]();
}
$(document).ready(function() {
  foo('customFx');
}

必须以字符串形式传入函数名

$.fn.customFx = function() {
  //do something...    
}
function foo( methodName ) {
  //do something...
  $(selector)[ methodName  ]();
}
$(document).ready(function() {
  foo( "customFx" );
}

或者,您可以使用call/apply函数来调用该函数,但是这里的开销很大。