我想知道它是否可行,有一个或多个变量将它们传递给函数并修改这些变量。我认为它与对象一致,因为它们表现为参考,但我不知道。
你可以使用1 var:
var something = increase(something);
但是如果你有两个带收件人的变量,并希望交换它们怎么办?
exchange_recipies(book1, book2);
你可以这样做,但变量是函数内部的参数......那么我还有另一种方法吗?
编辑:我知道这可以通过多种方式完成,但我会在这里陈述一些由于明显限制我不喜欢的内容:- 使用全局变量。
- 使用对象
- 返回一个数组并重新分配。
EDIT2:这个Is it possible to change the value of the function parameter?帮助了我,但我认为答案是不完整的,并且有办法实现这一点。
答案 0 :(得分:0)
一种方法是将这两个参数作为对象传递:
exchange_recipies({ obj: book1 }, { obj: book2 });
然后在内部完成后,您可以对obj
属性进行操作
function exchange_recipies(book1, book2)
{
book1.obj = book2.obj;
...
}
答案 1 :(得分:0)
如果变量是全局声明的,那么你就不需要将它们传递给函数,因为它们可以在函数内部进行寻址。
var something = 1
function bar(){
something = increase(something);
}
例如。
这意味着你要避免将变量更改为参数,然后可以从任何函数中解决它们(依赖于嵌套,ergo,如果变量是在函数内声明的,它可以在该函数之外解决,但可以从内部的一个功能)
function foo(){
var something = 1
function bar(){
//works because it exists in the parent function
something = increase(something)
}
}
function foobar()
//Something doesn't exist here so would return something = undefined
something = increase(something)
}