我需要函数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);
}
答案 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();