4

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

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

3 回答 3

5

据我所知,关键字get只是归类x()为 getter,并且似乎是自调用的。jScript (IE) 不支持它,它不是保留字。

你会像这样引用它:obj.x; // 17

用 lamen 的话来说,它们的行为是相同的:

var foo = { get x() { return 17; } };  
document.write(foo.x);​ // 17

var bar = { x: function() { return 17; } };  
document.write(bar.x());​ // 17
于 2012-05-07T21:50:03.970 回答
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
于 2012-05-07T21:52:30.390 回答
0

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

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

于 2012-05-07T21:51:38.663 回答