我想打電話使用數組作爲參數的函數:傳遞一個數組在JavaScript
const x = ['p0', 'p1', 'p2'];
call_me(x[0], x[1], x[2]); // I don't like it
function call_me (param0, param1, param2) {
// ...
}
是否有合格的x
內容到call_me()
的更好的辦法?
我想打電話使用數組作爲參數的函數:傳遞一個數組在JavaScript
const x = ['p0', 'p1', 'p2'];
call_me(x[0], x[1], x[2]); // I don't like it
function call_me (param0, param1, param2) {
// ...
}
是否有合格的x
內容到call_me()
的更好的辦法?
const args = ['p0', 'p1', 'p2'];
call_me.apply(this, args);
查看MDN文檔Function.prototype.apply()
。
如果環境支持的ECMAScript 6,你可以使用一個spread argument代替:
call_me(...args);
你爲什麼不通過整個陣列和處理它作爲函數內部需要的?
var x = [ 'p0', 'p1', 'p2' ];
call_me(x);
function call_me(params) {
for (i=0; i<params.length; i++) {
alert(params[i])
}
}
假設call_me是一個全局函數,所以你不要指望它被設置。
var x = ['p0', 'p1', 'p2'];
call_me.apply(null, x);
由於@KaptajnKold已經回答
var x = [ 'p0', 'p1', 'p2' ];
call_me.apply(this, x);
而你並不需要爲call_me功能各項參數要麼定義。 你可以使用arguments
function call_me() {
// arguments is a array consisting of params.
// arguments[0] == 'p0',
// arguments[1] == 'p1',
// arguments[2] == 'p2'
}
這是一種很糟糕的做法......如果你看看這個功能,你將無法看到該功能需要什麼,並且每個參數都是可選的。 – Robin 2016-10-31 08:06:52
注意這個
function FollowMouse() {
for(var i=0; i< arguments.length; i++) {
arguments[i].style.top = event.clientY+"px";
arguments[i].style.left = event.clientX+"px";
}
};
// -------------------------- -
html頁面
<body onmousemove="FollowMouse(d1,d2,d3)">
<p><div id="d1" style="position: absolute;">Follow1</div></p>
<div id="d2" style="position: absolute;"><p>Follow2</p></div>
<div id="d3" style="position: absolute;"><p>Follow3</p></div>
</body>
可以調用任何參數數量
<body onmousemove="FollowMouse(d1,d2)">
或
<body onmousemove="FollowMouse(d1)">
這顯然是答案的一部分。在調用之後重新獲得數組肯定需要「參數」。謝謝! – FlorianB 2016-06-25 14:30:51
1-可以加入陣列成串
2-傳遞起作用
3-呼叫分裂
var fruits = ["Banana", "Orange", "Apple", "Mango"];
function myFunction(name)
{
var nameArray = name.split(',');
.
.
.
}
呼叫的方法:
myFunction(fruits.join(','));
甚至
myFunction("orange,Apple,fruits");
作爲一個附註,如果有人想要傳遞一個關聯數組(名爲keys),那麼使用一個對象。來自PHP(並總是通過谷歌引導到這個線程),這讓我花了一段時間才弄清楚。然後您可以將整個對象作爲參數傳遞。 http://www.w3schools.com/js/js_objects.asp – timhc22 2014-05-29 08:56:49
感謝您指出'傳播'的論點!不知道。 – 2017-11-12 21:44:51