淺談 js 對象 toJSON 方法


前些天在《淺談 JSON.stringify 方法》說了他的正確使用姿勢,今天來說下 toJSON 方法吧。
其實我覺得這貨跟 toString 一個道理,他是給 stringify 方法字符串化的時候調用的。
看下 MDN 官方文檔吧《toJSON behavior》。
非常簡單,但是要注意的是他和 stringify 方法第二個參數稍微有點不同。
因為 stringify 第二個參數是回調函數時,只是對當前 key 對應的值進行修改。
而 toJSON 則是對當前對象進行修改。
例如:

var obj = {
    key: 'foo'
};
var ret = JSON.stringify(obj, function (k, v) {
    return k === "key" ? v.toUpperCase() : v;
});
console.log(ret);

var obj = {
    key: 'foo',
    toJSON: function () {
        return 'bar';
    }
};
var ret = JSON.stringify(obj);
console.log(ret);

區別非常明顯,toJSON 的返回值直接代替了當前對象,而 stringify 的回調函數則僅僅是修改了當前值。

當然他們有各自的用處,所以看需求選擇使用就好。

好了,今天就簡單分享下這些吧。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM