【发布时间】:2014-01-10 19:30:16
【问题描述】:
为方便起见,我编写了一个简单的toJSON 原型,用于处理我认为安全的 JSON:
String.prototype.toJSON = function () {
return JSON.parse(this.valueOf());
};
我在测试我的网络服务时使用它。不幸的是,即使是这个简单的测试:
var v0 = '{"echo":"hello_world"}'.toJSON(), v1 = {"echo": "hello_world"};
失败了:
console.log(v0 == v1); // false
console.log(v0 === v1); // false
console.log(v0.echo == v1.echo); // true
console.log(v0.echo === v1.echo); // true
我对导致此问题的 JavaScript 有哪些不了解?
【问题讨论】:
-
“toJSON”实际上是在做“fromJSON”。
-
{a:1} !== {a:1}。两个对象是相同的……如果它们是相同的,并且指向堆中的相同对象。
标签: javascript json javascript-engine to-json object-equality