我有一個問題對我沒有任何意義。我想知道你們有沒有人可以幫忙。JSON.stringify和Object.keys在同一個對象上產生不同的結果
我有一個數據源對象,我用它來訪問REST數據。所有複雜的異步工作都能正常工作,但我完全沒有想到將選項傳遞給數據源配置的簡單任務。
目前,我有這樣的功能:
object.addSourceOption = function(model, optKey, optVal){
if(!_.has(config.sources, model)){ return this; }
else{
var options = config.sources[model]["options"];
options[optKey] = optVal;
console.log(options[optKey]);
//options = JSON.parse(JSON.stringify());
console.log("Source Option: " + optKey + ": " + optVal
+" added for model: " + model);
var debugString = JSON.stringify(options);
console.log(debugString);
console.log(Object.keys(options));
}
return this;
};
這個函數被調用,它的被據我可以看到一個名爲具有良好的價值觀。這裏的一些調試輸出的一個例子(在這種情況下,鍵值爲「post_get」和值是一個函數,並打印):
function (element){
}
restData2.js:189 Source Option: post_get: function (element){
} added for model: Contacts
restData2.js:191 {}
restData2.js:192 ["post_get"]
我不明白爲什麼JSON.stringify和對象。鍵會產生不同的結果。我不明白要調試我正在使用的代碼,或者可能在幕後發生的事情,以使這兩個函數對我寫的代碼不同意。
非常感謝。這是一個非常有用的評論,它絕對幫助我擺脫這個困擾。如果我想到了這一點,功能將會被忽略掉,這很明顯,而且大多數情況下,我們會想要的。但我沒有那麼想。所以謝謝。 – aphenine
@aphenine - 很高興幫助:)。我看到你是Stack Overflow的新手 - 如果你同意這是正確的答案,你應該把它標記爲:)。這將有助於未來的遊客。 –