Javascript 奇怪的json用法
我在上看到了javascript代码的一部分,我想知道如何在代码下面工作,这意味着什么Javascript 奇怪的json用法,javascript,json,Javascript,Json,我在上看到了javascript代码的一部分,我想知道如何在代码下面工作,这意味着什么 var obj = { get x() { return 17; } }; 据我所知,关键字get只是将x()分类为一个getter,并且似乎是自调用的。它在jScript(IE)中不受支持,并且不是保留字 您可以这样引用它:obj.x;//17 用拉门的话来说,它们的行为相同: var foo = { get x() { return 17; } }; document.write(foo.x);
var obj = { get x() { return 17; } };
据我所知,关键字
get
只是将x()
分类为一个getter,并且似乎是自调用的。它在jScript(IE)中不受支持,并且不是保留字
您可以这样引用它:obj.x;//17
用拉门的话来说,它们的行为相同:
var foo = { get x() { return 17; } };
document.write(foo.x); // 17
var bar = { x: function() { return 17; } };
document.write(bar.x()); // 17
这就是为x属性指定一个getter,它与JSON无关。您会感到困惑,因为JSON是JS对象的有效初始值设定项,然而,并非所有JS初始值设定项都是有效的JSON 该语法意味着当您从
obj.x
读取时,它将调用该函数以获取其值代码>等于:
var obj = {
x: 17
}
或者:
var obj = {
x: (function(){
return 17;
})()
}
这意味着var obj
声明了一个对象,并且get x(){return 17;}
声明了obj对象的一个属性,其值为17:
var myVar = obj.x;//Equals to 17
对不起,我已经编辑并修复了这篇文章。我想现在是对的,“得到”是什么意思。我觉得这两件事不一样。您可以从javascript控制台看到
dir(obj)
。这就是“get”的建议:计算函数的返回值(在17例中)并将“x”变量设置为该值。阅读关于get运算符的所有内容:这不是完全相同的,foo.x
和bar.x()
我说它们的行为相同,而不是编码相同。