1
darcy 2012-05-31 17:59:39 +08:00
实现object的toString方法。
|
2
waterye 2012-05-31 22:48:08 +08:00
代码细节这种问题建议去stackoverflow,好多人抢着答。
|
3
cute 2012-05-31 23:58:42 +08:00
@avatasia
@waterye @darcy 一个简单的序列化方法,楼主测试下一下。 function hashify(item){ var temp = []; for (var k in item){ if(item.hasOwnProperty(k)) { temp.push([k,item[k]!==null && item[k].toString()=='[object object]'?hashify(item[k]):item[k]]); } } temp = temp.sort(function(a,b){ return a[0] > b[0] ? 1 : -1; }); return temp.join("\n"); } alert(hashify({a:1,c:5,b:2})); alert(hashify({a:1,c:5,b:2})==hashify({a:1,b:2,c:5})); alert(hashify({a:1,c:{b:2}})==hashify({c:{b:2},a:1})); |
4
loddit 2012-06-01 00:14:23 +08:00
我这里测试只把 this[i] 改成函数里的 tmp ,似乎就没有问题,为了方便我直接把属性都加 Object 上了。
写了一阵coffee以后,看js有很吃力呀。 > Object.prototype.test = function() { var temp = {}; len = this.length; for(var i=0; i < len; i++) { var tmp = this[i]; if(!temp.hasOwnProperty(tmp)) {console.log(tmp); temp[tmp] = "hoho"; } } Object.scene = temp } > [{a:1,b:2}, {a:1, b:2}].test() > Object.scene[{a:1,b:2}] display => "hoho" |
5
avatasia OP |