JSON.stringifyを呼び出した時、そのオブジェクトにtoJSONメソッドがあればそれをフックするそうです。
https://developer.mozilla.org/en/JSON#toJSON()_method
JSON.stringify.js
var obj = {
toJSON: function() {
console.log("toJSON called");
}
};
JSON.stringify(obj); // output "toJSON called"
フックすると通常のJSON.stringifyの出力は当然ながら出力されません。
これはMDNで知ったのですが、ECMAScriptで標準化された仕様なのでしょうか?