我是Javascript新手(一般編程),並且一直在尋找一種方法來改變任意數量的參考值Javascript功能。 (JavaScript variable number of arguments to function)很有幫助。我能夠使用它來創建我需要的兩個功能,但是我在第三個功能上遇到了問題。使用可變數量參數的Javascript函數 - 更改它們的值 - 然後返回它們
基本上我想通過可變數量的對象(原始或更復雜的)到一個函數,並具有函數更改每個對象的值。
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
這是一個很好的解釋。只是讓我畏縮思考指針.... –