sat*_*sat 11 javascript extend underscore.js
看起来像Underscore库不会将JSON中的函数视为一等公民.为什么这个小提琴不起作用?
var a = { 'f1': function(){var s='success';} };
var b = {'foo' : 'bar'};
var c = _.extend(b, a);
alert(JSON.stringify(c));
var d = _.extend({name : 'moe'}, {age : 50});
alert(JSON.stringify(d));
Run Code Online (Sandbox Code Playgroud)
为什么不是c正确的价值?
d 如果我们只使用字符串作为键和值,则似乎具有正确的值.
我怎样才能解决这个限制?
mu *_*ort 12
c 确实有正确的价值:
{
f1: function () {var s='success';},
foo: "bar"
}
Run Code Online (Sandbox Code Playgroud)
你的问题是你JSON.stringify用来生成字符串alert,在JSON中没有函数的表示,所以JSON.stringify(c)遗漏f1了.如果你console.log用来查看你的结果,你会有更好的运气:http://jsfiddle.net/ambiguous/7j7hu/
_.extend顺便说一句,你应该记住使用这种方式:
var c = _.extend(b, a);
Run Code Online (Sandbox Code Playgroud)
也会修改b,这可能不是你的意图.
| 归档时间: |
|
| 查看次数: |
7115 次 |
| 最近记录: |