就像在C#中的 int sampleMethod(ref object p) { ... }
其中参数p是按引用传递的,这样可以在方法内把p指定为不同于调用前的另外的对象。
在javascript里有没有类似的机制呢?
类似C#中的输出参数呢?(int otherMethod(out object p){...})

解决方案 »

  1.   

    javascript中,数组,对象,都是引用类型的
      

  2.   

    如果是引用类型的话,那么下面这段代码应该最终显示5,而实际测试结果是显示的1
    function SomeObj()
    {
    this.Prop = null;
    }function tf(p)
    {
    p = new SomeObj();
    p.Prop = 5;
    return 2
    }var p = new SomeObj();
    p.Prop = 1;
    tf(p);
    alert(p.Prop);
      

  3.   

    对啊,你的程序返回的不是p.Prop你也没有接收它的返回值
      

  4.   

    就像在C#中,如果一个函数的参数声明为ref的,则调用的时候在传递该参数的位置上要用类似 ref parameter的形式来调用。而调用结束后,若函数里面的代码给parameter赋予了另外的对象,则在外面的调用代码看来,parameter变量也就指向了新的对象了。而如果参数是valuetype的,比如ref int iParam,则调用的时候,实参的变量作为参数要完成装箱操作,调用完成后,如果函数里面的代码修改了该参数,则这种修改能够被外面的调用代码所感知。
    举个例子:在C#里,
    public void SomeMethod(ref int iParam)
    {
      iParam = iParam + 1;
    }调用的代码类似这样:
    int i = 1;
    SomeMethod(ref i);结果调用完成后,变量i的值为2问题是要完成类似的功能,在javascript中有没有什么办法能够以类似的形式达成这样的效果。如果非得使用一个数组,则只能看作是手动装箱,这种办法有点丑陋。