JavaScript jQuery函数,需要特定类型的函数作为参数

javascript jquery function that expects a specific type of function as parameter?

本文关键字:函数 类型 参数 jQuery JavaScript      更新时间:2023-09-26

当我运行时在jquery中:

$('li').each(some-function(i){});

IDE 似乎知道某个函数需要索引。

这让我相信我可以在javascript/jquery中创建一个函数,该函数期望函数作为其参数之一,该参数需要某些参数。(我是javascript的新手)

我知道如何用c语言做到这一点。

我正在寻找这样的东西:

void somefuncA ( void (*funcB)(int) ){
    //do stuff with funcB
    (*funcB)(5);
}

因此,函数 'somefuncA' 期望获得一个函数 funcB,该函数获取一个整数作为参数,然后执行某些操作。

希望这是有道理的..谢谢p.s. 我知道 JavaScript 是弱类型,但我也注意到.each()期望一个函数作为参数,而不仅仅是任何函数,而是带有 int 作为参数的函数。

这让我相信我可以在javascript/jquery中创建一个函数 期望一个函数作为它的参数之一,期望某些 参数。

你可能在这里谈论代表。函数是 JavaScript 中的一等对象。它们不像其他一些语言那样定义类型安全的指针。函数可以根据需要定义任意数量的参数,但您甚至不必传递一个参数。跳过的参数将未定义。它们也不定义任何返回类型。函数可能会也可能不会返回值。

您的 IDE 足够聪明,可以找到函数调用并提示您提供了哪些参数。您可以在函数中自由使用或跳过这些参数。

$('li').each(function(){
   // do something
});

在这里,您将创建一个不带任何参数的匿名函数。 jQuery将在内部传递索引或其他一些参数,但它不会产生任何错误。您还可以创建一个使用 jQuery 提供的索引参数的函数。

$('li').each(function(index){
   // do something
});

你问的是这样的吗?

function somefuncA ( funct, parameters ){
    //do stuff with funcB
    alert(funct(parameters));
}

这主要用于 javascript 中的回调。

function ​myFunc​(fn, param)
{
    if (typeof fn != "function") {
        throw new TypeError();
    }
    fn.call(this, param);
}

使用两个参数调用myFucn,第一个参数是函数,第二个参数是它的参数"Hello"

myFunc(function(m){
    alert(m);
}, 'Hello!');​

演示。