我有一个问题对我没有任何意义。我想知道你们有没有人可以帮忙。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的新手 - 如果你同意这是正确的答案,你应该把它标记为:)。这将有助于未来的游客。 –