function(¶m) - 就像在PHP中一样

时间:2012-02-24 16:24:58

标签: javascript jquery

  

可能重复:
  JavaScript Pass Variables Through Reference

你怎么能在javascript中做这样的事情?

在PHP中,您可以在参数前面的函数中放置&以直接写回变量。如何在javascript中执行此类操作?

2 个答案:

答案 0 :(得分:2)

在JavaScript中,值按值传递给函数。但是,对象通过引用传递。

传递值:

function myfunction(x)
{
      // x is equal to 4
      x = 5;
      // x is now equal to 5
}

var x = 4;
alert(x); // x is equal to 4
myfunction(x); 
alert(x); // x is still equal to 4

传递对象:

function myobject()
{
    this.value = 5;
}
var o = new myobject();
alert(o.value); // o.value = 5
function objectchanger(fnc)
{
    fnc.value = 6;
}
objectchanger(o);
alert(o.value); // o.value is now equal to 6

来源:http://snook.ca/archives/javascript/javascript_pass

答案 1 :(得分:0)

如果将对象传递给函数,则始终将其视为传递对象的引用。 要对原始值产生类似的效果,可以在像

之前将它们包装在对象中
 var intVal = { val: 0 };

这样你可以将它传递给一个函数并仍然修改实际的变量。