2012-06-20 56 views
1

jQuery中,當我運行:javascript的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爲參數的函數。

+0

請解釋你的目標。如果這就是你要求的,你不能在JavaScript中聲明類型。 –

+0

讓我們知道你到底想做什麼。 – Subhajit

+1

*不僅僅是一個函數,而是一個以int爲參數的函數。*這裏你錯了。'each'不指望這種函數,它只會在函數接受它時提供索引。如果你傳遞一個沒有的函數,它仍然沒有問題。 – Yoshi

回答

1

這使我相信我可以做一個函數在javascript/jquery中, 需要一個函數作爲其參數之一,它需要某個參數 。

您可能會在此討論代表。 Functions are first-class objects in JavaScript。他們沒有像其他一些語言那樣定義類型安全的指針。一個函數可以根據自己的喜好定義許多參數,但是您甚至不需要傳遞一個參數。跳過的參數將不確定。他們也沒有定義任何返回類型。函數可能會返回值,也可能不會返回值。

您的IDE非常聰明,可以找到函數調用並給出提示提供了哪些參數。您可以在您的功能中自由使用或跳過這些參數。

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

在這裏創建一個不帶任何參數的匿名函數。 jQuery將傳遞索引或其他一些參數,但不會產生任何錯誤。您也可以創建一個使用jQuery提供的索引參數的函數。

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

你在問什麼是這樣的?

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

這主要用於JavaScript中的回調。

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

呼叫myFucn有兩個參數,第一個參數是函數和第二參數是它的參數「你好」

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

DEMO.

相關問題