jQuery可以通過(guò)一個(gè)函數(shù)同時(shí)返回兩個(gè)參數(shù),實(shí)現(xiàn)起來(lái)也非常簡(jiǎn)單,只需要在函數(shù)中用逗號(hào)隔開(kāi)即可,例如下面這個(gè)例子:
function returnTwoParams() { var param1 = "hello"; var param2 = "world"; return param1, param2; } var result = returnTwoParams(); console.log(result); // "world"
上面的例子中,我們定義了一個(gè)返回兩個(gè)參數(shù)的函數(shù)returnTwoParams,函數(shù)的實(shí)現(xiàn)非常簡(jiǎn)單,只是定義了兩個(gè)變量param1和param2,并在函數(shù)最后通過(guò)逗號(hào)把它們一起返回了。我們可以將這兩個(gè)返回值分別賦值給兩個(gè)變量,也可以像上面例子中一樣,只用一個(gè)變量來(lái)接收。
但是上面的函數(shù)只返回了最后一個(gè)參數(shù),也就是"world",這是因?yàn)镴avaScript中的逗號(hào)表達(dá)式的返回值是最后一個(gè)表達(dá)式的值。如果我們想要同時(shí)返回兩個(gè)參數(shù),應(yīng)該怎么做呢?jQuery提供了一個(gè)$.Callbacks()方法來(lái)解決這個(gè)問(wèn)題。
var callback = $.Callbacks(); callback.add(function(param1, param2) { console.log(param1); // "hello" console.log(param2); // "world" }); callback.fire("hello", "world");
上面的例子中,我們首先定義了一個(gè)Callbacks對(duì)象,并通過(guò)add()方法向它添加了一個(gè)回調(diào)函數(shù)。在fire()方法中,我們傳入了兩個(gè)參數(shù)"hello"和"world",這兩個(gè)參數(shù)會(huì)被傳遞給回調(diào)函數(shù),并分別打印出來(lái)。這樣就實(shí)現(xiàn)了同時(shí)返回兩個(gè)參數(shù)的功能。