我是 Javascript(和一般编程)的新手,并且一直在寻找一种方法来使用 Javascript 函数更改任意数量的 aguments 的值。
这里的答案(JavaScript variable number of arguments to function)非常有帮助。我能够使用它来创建我需要的两个功能,但我在使用第三个时遇到了麻烦。
基本上我想将可变数量的对象(原始或更复杂)传递给一个函数,并让函数改变每个对象的值。
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