minggeJS icon indicating copy to clipboard operation
minggeJS copied to clipboard

MingGeJS1.9.3.2016完美正式版 JS对象系列化BUG, 接着打脸

Open xqin opened this issue 8 years ago • 3 comments

3个月已经过去了, 版本号也由原来的1.7.5升级到1.9.3, 而且还号称是完美正式版...

居然还有这么弱智的BUG, 果然SB还是那个SB, 一点都没变.

<script src="MingGe_1.9.5.js"></script>
<script type="text/javascript">
    var a = {
        MGSB: new Date()
    };

    console.log($.toJSON(a), JSON.stringify(a));
</script>

image

xqin avatar Mar 18 '16 11:03 xqin

素质不@drduan

Naville avatar Mar 18 '16 23:03 Naville

$.toJSON 问题解答

有人问,为什么有JOSN.stringify你不用,而去走代码过程

其实是有原因,我们首先看一下例子

JOSN.stringify({a: document})

WEBKIT浏览器下是直接报错的

而火孤 浏览器下 JOSN.stringify({a: document})有输出的

JOSN.stringify在每个浏览器的差异何止上述这些, 我当时就想,不如全部浏览器统一走代码过程,让输出结果统一起来

但是我走代码过程后,我又发现某些人拿 JOSN.stringify的输出结果与 走代码过程的结果进行对比 例如这句$.toJSON({a:new date()}),我走过程时,是没有输出的。而JOSN.stringify是有结果的

我在想,如果继续再写判断,也是治标不治本, 只会无休止的一直判断, JOSN.stringify是属于原生API,其实他也有漏洞,他在每种浏览器下都有极大的差异, 所以我认为没有必要再和 JOSN.stringify 结果完全一致,我已经没办法再判断下去了

我思考了几分钟,我作了艰难的选择, $.toJSON默认: 当浏览器有 JOSN.stringify时,用JOSN.stringify执行 当 浏览没有 JOSN.stringify(如IE 678)走过代码过程。

但是这样做,可能会造成甘些情况下,各浏览器有差异 所以 $.toJSON 在后面再新增一个参数,: 是否走代码过程

$.toJSON(OBJECT, true 或 false) @参数1 :OBJECT对象, @参数2:是否走代码过程

mingge8888 avatar Mar 20 '16 07:03 mingge8888

面再新增一个参数,: 是否走代码过程

$.toJSON(OBJECT, true 或 false) @参数1 :OBJEC

明哥nb

orf53975 avatar Jan 21 '19 09:01 orf53975