我可以传递像参考这样的参数

时间:2015-11-19 11:48:15

标签: javascript

我需要函数change来更改变量并返回Tst1。我希望能进入控制台:

5
aaa

但保持不变:

6
bbb

我的职能:

function change ( aa,bb )
{
    aa=5;
    bb="aaa";
}

function Tst1() 
{
    aa=6;
    bb="bbb";
    change(aa,bb);

    console.log (aa);
    console.log (bb);
}

4 个答案:

答案 0 :(得分:3)

一种方法是将change()移到函数test()中。然后它与调用范围共享相同的变量。



'use strict';

function test() {

    function change() {
        aa = 6;
        bb = 76;
    }

    var aa = 5,
        bb = 6;
  
  change();      
  document.write(aa + "   " + bb);
}
test();




答案 1 :(得分:1)

JavaScript就像java一样,原语永远不会通过引用传递,但是对象总是通过引用传递。您需要将数据包装在一个对象中并传递它:

function change (aa, bb)
{
    aa.value = 5;
    bb.value = "aaa";
}

function Tst1() 
{
    aa = { value: 6 };
    bb = { value: "bbb" };
    change(aa, bb);

    console.log (aa.value); // outputs 5
    console.log (bb.value); // outputs aaa
}

答案 2 :(得分:1)

或者您可以使用全局变量,但这不是一个好习惯。



var aa,bb;

function change(){
  aa=6;
  bb=76;
}

function test(){

  aa = 5;
  bb = 6;
  
  change();
  
  console.log(aa + "   " + bb);
}

test();




答案 3 :(得分:0)

简答:,您无法通过JS中的引用传递原始参数。
此处介绍的一种替代解决方案是将结果值作为项数组返回:



SimpleFacebook mSimpleFacebook;
mSimpleFacebook=SimpleFacebook.getInstance(this);

Session session=mSimpleFacebook.getSession();
AccessToken accessToken=session.getAccessToken();