一个奇怪的json用法

时间:2012-05-07 21:44:39

标签: javascript json

我在MDN上看到了一部分javascript代码,我想知道如何在代码下工作,这是什么意思?

var obj = { get x() { return 17; } };

3 个答案:

答案 0 :(得分:5)

据我所知,关键字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

答案 1 :(得分:1)

var obj = { get x() { return 17; } };等于:

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

答案 2 :(得分:0)

那是为x属性指定一个getter,它与JSON无关。您感到困惑,因为JSON是JS对象的有效初始化程序,但并非所有JS初始化程序都是有效的JSON。

该语法意味着当您从obj.x读取时,它会调用该函数来获取其值。