我使用一些JavaScript庫來繪製圖表。 它需要傳遞座標到數組初始化器的數組。 但是圖表初始化函數有一個簽名看起來像新函數([arr1],[arr2],[arr3]),但我不知道我會傳入多少數組,但不可能將它初始化爲另一個數組辦法。如何才能解決這個問題? 謝謝。將未知數的參數傳遞給js構造函數
UPD:調用的函數是構造函數,所以它不能正常工作應用。 問題是如何來傳遞數據,但不知道如何獲得通過數據
的計數我使用一些JavaScript庫來繪製圖表。 它需要傳遞座標到數組初始化器的數組。 但是圖表初始化函數有一個簽名看起來像新函數([arr1],[arr2],[arr3]),但我不知道我會傳入多少數組,但不可能將它初始化爲另一個數組辦法。如何才能解決這個問題? 謝謝。將未知數的參數傳遞給js構造函數
UPD:調用的函數是構造函數,所以它不能正常工作應用。 問題是如何來傳遞數據,但不知道如何獲得通過數據
的計數SOLUTION的功能:它可以使用適用於構造函數,但它需要以下解決方法:
function construct(constructor, args) {
function F() {
return constructor.apply(this, args);
}
F.prototype = constructor.prototype;
return new F();
}
在構造函數中'this'變量將是'F'函數實例 –
您可以使用內置的名爲arguments
變量,它是傳遞給函數的參數和arguments.length
類似陣列的對象,以確定如何許多論點都通過了。有關更多信息,請參閱此MDN reference。
function myFunc() {
for (var i = 0; i < arguments.length; i++) {
// you can process arguments[i] here
}
}
如果你想傳遞一個可變數量的參數,你可以使用.apply()
。您構建一個參數數組,並將其作爲第二個參數傳遞給應用。第一個參數是你想要的this
指針設置爲。這裏的MDN reference爲.apply()
。
var myArgs = [arr1, arr2, arr3];
myFunc.apply(window, myArgs);
功能是接受可變數量的參數被稱爲可變參數功能。 在JavaScript中,您可以使用arguments
對象來訪問參數。要調用你也可以使用.call
或.apply
什麼JavaScript的LIB您使用的? –
可能重複[Javascript未知數量的參數](http://stackoverflow.com/questions/6442371/javascript-unknown-number-of-arguments) –
我很難理解你在問什麼(即使與更新)。你是說初始化函數是庫的一部分,所以你不能控制它的工作方式,它期望三個參數是數組,你不知道要傳遞什麼?你能更清楚地知道你所擁有的數據嗎?如果您傳遞空數組或空值代替沒有值的參數,會發生什麼情況? – nnnnnn