淺談 js 對象 toJSON 方法

來源:互聯網
上載者:User

標籤:blog   http   java   使用   os   io   cti   html   

前些天在《淺談 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 的回呼函數則僅僅是修改了當前值。

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

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.