簡體   English   中英

如何將變量值分配給另一個變量,而不是引用dojo javascript

[英]how to assign a variable value to another variable instead of reference dojo javascript

我想即時更改dijit / form / select的存儲。 為此,我需要從服務器檢索商店。 我需要將此存儲保存在某個臨時存儲中,並在我的代碼中對臨時存儲進行更改。

在下面的代碼中,requiredStore具有從服務器接收的數據。 我需要創建一個新的臨時存儲區(在我的情況下為臨時存儲區),該存儲區可以作為requireStore中的輔助數據。(而不是臨時存儲區是對requiredStore的引用),因此,當我刪除/更改臨時存儲區中的值時,requiredStore不會受到影響。 以下是我使用過的代碼。

        function getDropDownContents() {
            require([
            "dojo/store/Memory",
            "dijit/form/Select",
            "dojo/data/ObjectStore",
            "dojo/request",
            "dojo/domReady!"
            ],
            function (Memory, Select, ObjectStore, request) {
                var os;
                var def = new dojo.Deferred();
                dojo.xhrGet({
                    url: "pageToGetValues.aspx",
                    handleAs: "json",
                    load: function (res) {
                        requiredStore = new Memory({ data: res });
                        temporaryStore = requiredStore;
                        getOptionsToSelect('dropdown1');
                        var select = dijit.byId('dropdown1');
                        select.on('change', function (evt) {
                            getOptionsToSelect('dropdown2');
                        });
                        myFormDialog.show();
                    }
                });
            });
        }

但是,我不知道,當我更改臨時存儲時,我並沒有遵循什么javaScript原理,因為coz也會被更改。

您需要做一個requiredStore的深層克隆(遍歷屬性和原型以創建完美的副本),或者只創建一個完全不同的內存存儲:

requiredStore = new Memory({ data:res });
temporaryStore = new Memory({ data: res });

我不知道為什么不使用這種方法,但是如果您想進行深層克隆,則此問題將有所幫助:

在JavaScript中深度克隆對象的最有效方法是什么?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM