1
A
回答
3
你需要這樣的事情。這是一種常見的做法。您可以檢查回調參數是否首先存在,並且它實際上是一個函數。
function doSomething (argA, callback) {
// do something here
if (callback && typeof callback === 'function') {
callback();
// Do some other stuff if callback is exists.
}
}
0
JavaScript是所謂的「鴨子打字」語言,這意味着在方法參數上沒有硬性限制。所有這些會沒事的:
function test() {
console.log(arguments); // [1, 2, 3], Array style
console.log(param1); // undefined
console.log(param2); // undefined
}
function test(param1) {
console.log(arguments); // [1, 2, 3], Array style
console.log(param1); // 1
console.log(param2); // undefined
}
function test(param1, param2) {
console.log(arguments); // [1, 2, 3], Array style
console.log(param1); // 1
console.log(param2); // 2
}
test(1, 2, 3);
,你甚至可以用不同種類則params的呼籲:
test();
test(1, 2);
test(1, 2, 3, 4, 5);
所以只要你保持跟蹤你真正需要多少,你可以爲他們提供在方法定義。如果他們中的一些是可選的,你有兩個選擇:
- 定義但沒有使用這些
- 這通常使用時的參數的長度,以便很小
- 使用
arguments
得到其餘的參數
0
我知道這是一箇舊帖子,但我沒有看到這個解決方案,我認爲它更乾淨。
只有當它是一個函數實例(因此可調用)時纔會調用回調函數。
function example(foo, callback) {
// function logic
(callback instanceof Function) && callback(true, data)
}
example('bar')
example('bar', function complete(success, data) {
})
相關問題
- 1. 如何在squelize nodejs中編寫回調函數?
- 2. 如何爲jQuery選項卡添加方法編寫回調方法
- 3. 如何在Angularjs中調用Nodejs方法
- 4. 如何從C#中使用可選參數調用VB.NET編寫的方法
- 5. 如何在VB6中編寫回調?
- 6. 如何編寫接受回調函數的jQuery插件方法?
- 7. 在JavaScript中編寫相同深度回調的更好方法
- 8. 如何編寫替代鏈式方法調用的可變參數方法?
- 9. 如何在C#lambda語法中編寫以下回調延續?
- 10. 如何在Android中編寫POST方法
- 11. 如何在Javascript中編寫Array.prototype.every()方法
- 12. 如何在ruby方法中編寫SQL?
- 13. 如何在Java中編寫checkStyle方法?
- 14. 如何在java printf方法中編寫「%」
- 15. 如何在JavaScript中編寫mutator方法?
- 16. 如何編寫API方法Nodejs Express 3在Visual Studio 2015中的應用
- 17. 如何/何時在OOP中編寫可重用方法
- 18. 如何從一個方法返回可選的調試信息?
- 19. 如何在ABAP,SAP中編寫這種返回方法?
- 20. 如何在NodeJS中處理Coinbase回調?
- 21. 如何在JSP中編寫方法並調用它們?
- 22. 如何在VB.net中編寫這種lambda選擇方法?
- 23. 如何在jquery中爲所有複選框編寫.onclick方法
- 24. 在函數中設置可選回調的最佳方法
- 25. Nodejs回調方法或承諾?
- 26. 編寫Action Invoker - 如何調用用戶選擇的方法?你可以在我的代碼中看到
- 27. 如何在python中回調方法?
- 28. 在回調的NodeJS
- 29. 如何編寫toString()方法
- 30. 在nodejs中回調內部回調?