我一直在用不同的語言編程。最近,我有機會開始知道jQuery
。我正在閱讀關於回調函數的內容,我理解它的含義(以一種特定的方式,一個接一個地執行)。我有點困惑,要麼將它們與嵌套函數聯繫起來?這不是一回事嗎?請幫忙清除這個概念。謝謝。回調函數是否與嵌套函數相同?
3
A
回答
4
回調函數是在操作完成時調用的任何函數。這其實並不重要,它的定義:你可以創建一個局部範圍的功能,全局範圍等
使用$.ajax
爲例,其中success
是回調:
function handleSuccess(data) {
$(document.body).append(data);
}
function doAjaxCall() {
$.ajax({url: 'some/path', success: handleSuccess });
}
在功能等效於:
function doAjaxCall() {
var handleSuccess = function(data) {
$(document.body).append(data);
}
$.ajax({ url: 'some/path', success: handleSuccess });
}
在功能上等同於:
function doAjaxCall() {
$.ajax({ url: 'some/path', success: function(data) {
$(document.body).append(data);
}
});
}
1
回調函數只是一個執行回調的函數。 :)所以首先你需要打電話,這實際上是任何操作。考慮這個例子:
$.ajax({
url: '/test/'
});
此方法調用我們的服務器。現在操作是異步的 - 我們不知道服務器什麼時候會響應。但是我們知道它會給我們提供什麼樣的數據。所以你定義了回調 - 你將在服務器響應之後執行的操作。在這種情況下,您可以定義success
回調:
$.ajax({
url: '/test/',
success: function(res) {
console.log(res);
}
});
回調不需要是異步的。考慮下面這個例子
function test(data, callback) {
if (callback && $.isFunction(callback))
callback(data);
}
jQuery的方法isFunction
僅檢查是否callback
是一個函數。現在,您可以撥打test
這樣
test('test_string', function(str) {
console.log(str);
});
傳遞的功能,作爲第二個參數是一個回調。
所以基本上回調是沒有別的然後一個函數作爲參數傳遞給另一個函數。主要用於異步操作,但不僅僅是(生活示例:Array對象的方法forEach
)。
1
糾正我,如果我錯了,但我認爲這個問題是:
$("#someDiv").fadeIn(200, function(){
//do some stuff
});
vs
$("#someDiv").fadeIn(200, callbackFunction);
function callbackFunction()
{
//do some stuff
}
(對不起張貼這是一個答案不評論,但評論沒有代碼格式化)
相關問題
- 1. 相同參數的Python嵌套函數
- 2. JavaScript嵌套回調函數返回
- 3. 從函數返回一個回調函數的返回值(嵌套函數)?
- 4. PHP函數返回。嵌套函數
- 5. javascript函數調用 - 嵌套函數
- 6. 從嵌套函數返回調用
- 7. 測試函數是否與已知函數的行爲相同
- 8. 嵌套函數是否被認爲是單一函數?
- 9. Javascript嵌套函數返回
- 10. 從嵌套函數返回
- 11. 嵌套函數不返回
- 12. PHP返回嵌套函數
- 13. Javascript嵌套函數「不是函數」
- 14. 嵌套函數調用
- 15. 調用嵌套函數
- 16. Javascript,調用嵌套函數
- 17. 調用Angular嵌套函數
- 18. 嵌套函數調用
- 19. MIPS嵌套函數調用
- 20. javascript中的相同函數名(嵌套函數和外部函數)
- 21. Postgres函數與嵌套IF
- 22. 嵌套函數
- 23. 嵌套函數沒有與委託相同的簽名
- 24. 是否可以調用嵌套在另一個函數中的函數?
- 25. 獲取嵌套函數的函數的函數與遞歸
- 26. 問題與GUI回調MATLAB嵌套函數
- 27. 節點js +多個嵌套的內部函數與回調
- 28. C++命名返回值優化與嵌套函數調用
- 29. 我的代碼使用Node.js和回調函數是否與Java線程相同?
- 30. 嵌套函數內停止返回函數是否仍然停止?</p> <p>Tracker.autorun(嵌套)流星:
其實,意見(反引號之間:) :) – dezso
嗯......不是真的:'$(「#someDiv」)。fadeIn(200,function(){ //做一些東西 }); vs $(「#someDiv」)。fadeIn(200,callbackFunction); function callbackFunction() { // do do stuff } ' – strah