2011-07-04 58 views

回答

6

您不能返回兩個不同的值,但你可以返回一個對象或數組{我碰到這個就用C}的任何東西的可能性。只要你記錄可能遇到代碼的其他人的行爲,這是完全有效的。如果兩個返回的值是真正相關的,那麼這很有幫助。否則,可能難以理解該功能。從一個對象返回不同的數值將被很多人認爲是不好的做法,因爲函數的目的通常是執行一個可能返回離散值的離散操作。

// As an object 
function() { 
    return {val1: "value 1", val2: "value 2"}; 
} 

// As an array 
function() { 
    return ["value 1", "value 2"]; 
} 
5

不是直接的,但沒有人可以返回一個Array多元素阻止你:

function modify(a,b) { 
    return [a*2, b*2]; 
} 

var res = multiple(5, 10); 

console.log(res); 

要一點點進一步推動這一點,我們可以用這樣的「映射」的結果調用另一個方法。 Javascripts .apply()對此非常方便。

function add(v1, v2) { 
    return v1 + v2; 
} 

,我們可以稱之爲

add.apply(null, modify(2,4)); 

這實際上會像

add(4, 8) // === 12 
+0

請讓世界知道你爲什麼downvote。我們都應該從你的無限智慧中學習,陌生人! – jAndy

+0

downvote是我的一個錯誤,它已被改爲upvote。抱歉。現在,如果我只能找出爲什麼我得到我的downvote ...... _編輯:我剛剛撤消._ –

相關問題