使用javascript修改函数内的变量

时间:2015-06-10 13:13:26

标签: javascript variables

我想知道它是否可行,有一个或多个变量将它们传递给函数并修改这些变量。我认为它与对象一致,因为它们表现为参考,但我不知道。

你可以使用1 var:

var something = increase(something);

但是如果你有两个带收件人的变量,并希望交换它们怎么办?

exchange_recipies(book1, book2);

你可以这样做,但变量是函数内部的参数......那么我还有另一种方法吗?

编辑:我知道这可以通过多种方式完成,但我会在这里陈述一些由于明显限制我不喜欢的内容:

- 使用全局变量。

- 使用对象

- 返回一个数组并重新分配。

EDIT2:这个Is it possible to change the value of the function parameter?帮助了我,但我认为答案是不完整的,并且有办法实现这一点。

2 个答案:

答案 0 :(得分:0)

一种方法是将这两个参数作为对象传递:

exchange_recipies({ obj: book1 }, { obj: book2 });

然后在内部完成后,您可以对obj属性进行操作

function exchange_recipies(book1, book2)
{
   book1.obj = book2.obj;
   ...
}

http://codepen.io/anon/pen/eNRZZb

答案 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)
}