奇怪的JavaScript对象语法

sja*_*sja 3 javascript internet-explorer google-chrome javascript-objects

我最近在一个名为WebApp.net的库中遇到了这个问题:

var $h = {
    get HEAD() { return 0 },
    get BACK() { return 1 },
    get HOME() { return 2 },
    get LEFT() { return 3 },
    get RIGHT() { return 4 },
    get TITLE() { return 5 }
};
var $d = {
    get L2R() { return +1 },
    get R2L() { return -1 }
};
Run Code Online (Sandbox Code Playgroud)

我很熟悉JS,但这似乎毫无意义.Chrome确实将此解释为具有$ h.HEAD的对象,其他设置为返回后的数字.此外,吸气剂之类的东西也是$ h的一部分.

任何人都可以给我更多关于此的信息吗?IE无法解释这一点,所以我必须与此相提并论.

Tee*_*emu 6

你找到了吸气剂.

使用getter,您可以在读取对象的属性时执行函数.此外,它是一种为对象属性提供一些保护的方法,您无法直接更改getter的值.

从IE9开始,IE中也实现了getter和setter.