私はJavascript(および一般的なプログラミング)を使い慣れていて、aを使用して任意の数の引数の値を変更する方法を探していました。 Javascript関数。可変数の引数をとり、値を変更してから返すJavascript関数
ここの回答(JavaScript variable number of arguments to function)は非常に役に立ちました。私は必要な機能の2つを作成するためにそれを使用することができましたが、3番目の機能に問題があります。
基本的に、可変数のオブジェクト(プリミティブまたはより複雑な)を関数に渡して、各オブジェクトの値を関数に変更したいとします。
var pants = true;
var house = true;
var hair = {/* lots of stuff */};
var onFire = function() {
for (var i = 0; i < arguments.length; i++) {
arguments[i] = false;
}
};
onFire(pants, house, hair);
コンソール出力:
>pants;
true
>house;
true
>hair;
Object
結果があるので、私はこの機能を規定することができる方法:
>pants;
false
>house;
false
>hair;
false
任意の助けいただければ幸いです!
編集:
物事を明確にする - 私が代わりにタイピングのfalse
に渡された任意のオブジェクトの値を変更し、再利用可能なヘルパー関数を作成しようとしています:私が使用している場合
var a1 = false;
var a2 = false;
...
var a+n = false;
をmathecの方法 - 同じ名前のグローバル変数をプロパティが上書きするように 'object
をパーズする'ことは可能ですか、それとも毎回明示的に入力することに固執していますか?
var object = {
pants: {/* lots of stuff */},
house: {/* lots of stuff */},
hair: {/* lots of stuff */}
};
function modifyObject(obj) {
obj.pants = false;
obj.house = false;
obj.hair = false;
}
function someMagic(object){
// wand waves...
// rabbit exits hat....
}
コンソール出力:
>pants;
false
>house;
false
>hair;
false
良い説明ですが、オブジェクト変数自体を変更することは何もしませんが、そのプロパティを変更することはできません。 –
説明をありがとう!変数ラベルや名前は、それらが指している値とは別のものだと考える良い方法が見つかりました。変数名は、関数内では常に独立しています。関数内で変数を再割り当てする場合は、そのローカル変数を再割り当てするだけです。 – cmather
それは素晴らしい説明です。ちょうど私がポインタの考えをうなずけるようにします.... –