我試圖改變另一個函數內的函數參數,然後將其返回給被調用函數。我想是這樣的:有沒有辦法從另一個javascript函數改變函數的參數?
function func(a,b,c) {
console.log(arguments, a, b, c); //[1, true, "a"] 1 true "a"
arguments[0] = 2;
console.log(arguments, a, b, c); //[2, true, "a"] 2 true "a"
arguments = ArgumentsToNumber.apply(this, arguments);
console.log(arguments, a, b, c); //[2, 1, NaN] 2 true "a"
}
function ArgumentsToNumber() {
for (let i = 0; i < arguments.length; i++) {
arguments[i] = Number(arguments[i]);
}
return arguments;
}
func(1, true, 'a');
我想在a
,b
和c
變量的變化。
爲什麼不在'func'中使用'array.map'? 'arguments = arguments.map((argument)=> Number(argument))' –
@AkshatMahajan這會引發錯誤。參數不是數組 –
這看起來不像好的練習'參數[0] = 2'。您可能首先要將參數轉換爲數組。 ''.slice.call(arguments)''或以某種方式映射它們,比如'[] .map.call(參數,回調)' – elclanrs