4

Javaスクリプトメソッドを呼び出すときに、参照によってプリミティブ変数(文字列など)を渡す方法は?これは、C#のoutまたはrefキーワードに相当します。

私はstrのような変数を持っていてvar str = "this is a string";、関数にstrを渡し、引数値を変更すると、strの変更を自動的に反映する必要があります

function myFunction(arg){
    // automatically have to reflect the change in str when i change the arg value
    arg = "This is new string";
    // Expected value of str is "This is new string"
}
4

1 に答える 1

3

プリミティブ型、つまり文字列/数値/ブール値は値で渡されます。関数、オブジェクト、配列などのオブジェクトは、参照によって「渡され」ます。

したがって、あなたが望むことは不可能ですが、以下は機能します:

        var myObj = {};
        myObj.str = "this is a string";
        function myFunction(obj){
            // automatically have to reflect the change in str when i change the arg value
            obj.str = "This is new string";
            // Expected value of str is "This is new string"
        }
        myFunction(myObj);
        console.log(myObj.str);
于 2012-06-14T15:31:40.260 に答える