javascript如何模拟Json语句的函数全局范围?
javascript如何模拟Json语句的函数全局范围javascript如何模拟Json语句的函数全局范围?,javascript,Javascript,javascript如何模拟Json语句的函数全局范围 var testJson= { a1: 1, a2: this.a1+1 } 结果应该是: var testJson= { a1: 1, a2: 2 } 您必须在testJson之外定义一个变量,或者使用一个函数作为a2的值,如下所示: var testJson = { a1: 1, a2: function () { return this.a1 +
var testJson=
{
a1: 1,
a2: this.a1+1
}
结果应该是:
var testJson=
{
a1: 1,
a2: 2
}
您必须在
testJson
之外定义一个变量,或者使用一个函数作为a2
的值,如下所示:
var testJson = {
a1: 1,
a2: function () {
return this.a1 + 1;
}
};
您必须在
testJson
之外定义一个变量,或者使用一个函数作为a2
的值,如下所示:
var testJson = {
a1: 1,
a2: function () {
return this.a1 + 1;
}
};
JSON不支持代码执行。这只是一种对传输信息进行序列化和非序列化的方法。JSON字符串中不应有可执行内容 JSON解析器在遇到JSON字符串中的非文本值时应该失败
此规则的唯一例外是JSON-p,它在函数调用中封装JSON字符串以绕过跨域机制。JSON不支持代码执行。这只是一种对传输信息进行序列化和非序列化的方法。JSON字符串中不应有可执行内容 JSON解析器在遇到JSON字符串中的非文本值时应该失败
这个规则的唯一例外是JSON-p,它在函数调用中封装JSON字符串,以绕过跨域机制。我认为这不容易做到。这是可能的,但可能需要从一个对象创建一个函数,然后再创建一个函数。这将容易得多:
var testJson=
{
a1: 1,
a2: function(){return this.a1+1}
}
你可以用它来评估
testJson.a2();
这应该是现成的我认为这不容易做到。这是可能的,但可能需要从一个对象创建一个函数,然后再创建一个函数。这将容易得多:
var testJson=
{
a1: 1,
a2: function(){return this.a1+1}
}
你可以用它来评估
testJson.a2();
这应该是开箱即用的您的意思是
var testJson={a1:1};testJson.a2=testJson.a1+1代码>?你想要的东西只能通过函数调用来完成,但不能用对象表示法,至少不能用你期望的方式来完成……除非我完全误解了。你为什么要这么做?@Nick Craver:你说得对,我只想编写更少的代码。正确的方法是:var-testJson={a1:1,a2:testJson.a1+1}你的意思是var-testJson={a1:1};testJson.a2=testJson.a1+1代码>?你想要的东西只能通过函数调用来完成,但不能用对象表示法,至少不能用你期望的方式来完成……除非我完全误解了。你为什么要这么做?@Nick Craver:你说得对,我只想编写更少的代码。正确的方法是:var testJson={a1:1,a2:testJson.a1+1}这不是真正的JSON,只是Javascript语法。这不是真正的JSON,只是Javascript语法。