我有此功能:更改JavaScript對象
var changeFilter = (function (filterName, filterValue) {
var filters = {
"tip-oglasa": "",
"zemlja": "",
"grad": "",
"deo-grada": "",
"min-kvadrata": "",
"max-kvadrata": "",
"min-soba": "",
"max-soba": "",
"min-spratova": "",
"max-spratova": "",
"min-godina-izgradnje": "",
"max-godina-izgradnje": ""
};
return function() {
filters[filterName] = filterValue;
return filters;
};
})();
我想在哪個對象filters
將被定義功能,並獲得/通過兩個功能改變(getFilters
,這將只是獲取的過濾器變量和changeFilter
這將更改過濾器變量和返回結果)。
是否有可能做這樣的事情?我不想讓filters
對象公開,因爲我只想通過這兩種方法訪問它。
謝謝!我在我的網頁的腳本中使用它,所以我想讓整個事情變得更加有組織,並且更容易跟蹤/調試,而不需要在全局空間中定義數據(我最後一個項目包含了大量的變量,所以我不想重複同樣的錯誤)。如果我正確地理解了你,你認爲我應該在兩個返回的方法中使另一個與'filters'相同的變量返回而不是'filters'變量,對吧? – Nikola
@Nikola如果你根本沒有防範訪問,你應該直接使用數據對象(比如'filters'),而不是隱藏在沒有任何好處的對象之後。 – cdhowie
@chdowie,好吧,我實際上打算添加更多功能(除了通過AJAX發送此對象的其他功能外),並且更容易完成而不是更改變量,然後調用單獨的函數發送它。 – Nikola