javascript - 为什么 JSON.stringify 不显示作为函数的对象属性?

标签 javascript json function object stringify

为什么 JSON.stringify() 不显示 prop2?

var newObj = {
  prop1: true,
  prop2: function(){
    return "hello";
  },
  prop3: false
};

alert( JSON.stringify( newObj ) ); // prop2 appears to be missing

alert( newObj.prop2() ); // prop2 returns "hello"

for (var member in newObj) {
    alert( member + "=" + newObj[member] ); // shows prop1, prop2, prop3
}

JSFIDDLE:http://jsfiddle.net/egret230/efGgT/

最佳答案

因为 JSON不能存储函数。根据规范,值必须是以下之一:

Valid JSON values
(来源:json.org)


作为旁注,此代码将使 JSON.stringify 注意到的函数:

Function.prototype.toJSON = function() { return "Unstorable function" }

关于javascript - 为什么 JSON.stringify 不显示作为函数的对象属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10729258/

相关文章:

javascript - 如何在javascript中为最少一个字符编写正则表达式?

javascript - 如何在 AngularJS 指令中附加 svg 元素?

javascript - JS的IIFEs(立即调用的函数表达式)位置导致意外错误

c++ - 计算 5 的 3 次方,但返回 0。为什么?

javascript - 数组中函数的用途?

javascript - 如何删除并重新添加在 div 中播放的 twilio 视频轨道?

json - 错误搜寻 : CLDR 30 JSON data no longer has currencySpacing information

json - 如何使用 Angular JS 绑定(bind)从 @symbol 开始的 JSON 键

json - 在 Swift/Xcode 中将 JSON 文件转换为数组

javascript - 如何告诉 TypeScript Array 中没有 undefined?