2012-03-23 23 views

回答

3

有沒有辦法通過使用參數變量來實現相同的功能,因爲它擁有參數名的任何信息。爲了避免這種情況,您可以從使用多個參數切換到一個在其成員中保存實際參數值的複合參數對象。

<script> 
    function abc(params) { 
    var x = params.x; 
    var y = params["y"]; 
    } 

    abc({ x: 10, y: "hello" }); 
</script> 

這種方式,不過你失去了函數簽名代碼的一些可讀性,再加上你必須在調用端提供參數名稱。

+0

哦,我喜歡它。嘿!我可以使用:arguments [0] .params.x? – 2012-03-23 19:03:56

+0

你知道彼得,那是一個非常好的解釋。 – 2012-03-23 19:05:57

+0

Pedro:arguments [0] .x會按照我寫的方式工作 – 2012-03-23 19:18:45

1

您可以引用arguments僞變量,但參數按數字索引,而不是按名稱索引。直接避免與arguments混淆是一個好主意;一個常見的成語是將其轉換爲真正的數組:

var args = Array.slice.call(arguments, 0); 
+0

我一直在研究JavaScript超過一年,不記得看到這個常見的成語。男人,我必須更多地擊中書籍! – 2012-03-23 18:30:52

+0

那麼我會將它引用爲args [「x」]也許吧? – 2012-03-23 18:33:39

+0

@Pointy,爲什麼不直接引用即'arguments [0]'? – Henry 2012-03-23 18:36:20

1

恐怕不是。你可以明確地使用xarguments[0]但沒有更多。除非像其他人指出的那樣,你傳遞一個對象。

相關問題