javascript如何为Json语句模拟函数的全局作用域?
var testJson=
{
a1: 1,
a2: this.a1+1
}结果应该是:
var testJson=
{
a1: 1,
a2: 2
}发布于 2010-05-22 02:46:41
您必须在testJson外部定义一个变量,或者使用一个函数作为a2的值,如下所示:
var testJson = {
a1: 1,
a2: function () {
return this.a1 + 1;
}
};发布于 2010-05-22 02:47:03
JSON不支持代码执行。JSON specification只是一种序列化和反序列化传输信息的方法。JSON字符串中不应包含可执行内容。
JSON解析器在遇到JSON字符串中的非文本值时应该会失败。
该规则的唯一例外是JSON-P,它将JSON字符串包装在函数调用中,以绕过跨域机制。
发布于 2010-05-22 02:49:30
我认为这是不可能的。这可能是可能的,但它可能会涉及到从对象创建函数,然后再创建回来。这会容易得多:
var testJson=
{
a1: 1,
a2: function(){return this.a1+1}
}您可以使用以下命令进行评估:
testJson.a2();这应该可以开箱即用
https://stackoverflow.com/questions/2884642
复制相似问题