首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >javascript如何为Json语句模拟函数的全局作用域?

javascript如何为Json语句模拟函数的全局作用域?
EN

Stack Overflow用户
提问于 2010-05-22 02:40:17
回答 3查看 215关注 0票数 1

javascript如何为Json语句模拟函数的全局作用域?

代码语言:javascript
运行
复制
   var testJson=
    {
        a1: 1,
        a2: this.a1+1
    }

结果应该是:

代码语言:javascript
运行
复制
var testJson=
{
    a1: 1,
    a2: 2
}
EN

回答 3

Stack Overflow用户

发布于 2010-05-22 02:46:41

您必须在testJson外部定义一个变量,或者使用一个函数作为a2的值,如下所示:

代码语言:javascript
运行
复制
var testJson = {
  a1: 1,
  a2: function () {
    return this.a1 + 1;
  }
};
票数 1
EN

Stack Overflow用户

发布于 2010-05-22 02:47:03

JSON不支持代码执行。JSON specification只是一种序列化和反序列化传输信息的方法。JSON字符串中不应包含可执行内容。

JSON解析器在遇到JSON字符串中的非文本值时应该会失败。

该规则的唯一例外是JSON-P,它将JSON字符串包装在函数调用中,以绕过跨域机制。

票数 0
EN

Stack Overflow用户

发布于 2010-05-22 02:49:30

我认为这是不可能的。这可能是可能的,但它可能会涉及到从对象创建函数,然后再创建回来。这会容易得多:

代码语言:javascript
运行
复制
var testJson=
{
    a1: 1,
    a2: function(){return this.a1+1}
}

您可以使用以下命令进行评估:

代码语言:javascript
运行
复制
testJson.a2();

这应该可以开箱即用

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2884642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档