奇怪的JavaScript对象语法
我最近在一个名为WebApp.net的图书馆里偶然发现了这个:奇怪的JavaScript对象语法,javascript,google-chrome,internet-explorer,javascript-objects,Javascript,Google Chrome,Internet Explorer,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() { re
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 }
};
我熟悉JS,但这似乎毫无意义。Chrome确实将其解释为带有$h.HEAD的对象,其他设置为返回后的数字。此外,getter之类的东西也是$h的一部分
有人能给我更多的信息吗?IE无法解释这一点,因此我必须对此进行等效。你已经找到了
在读取对象的属性时,可以使用getter执行函数。另外,它也是一种保护对象属性的方法,您不能直接更改getter的值
从IE9开始,getter和也在IE中实现。它是一个包含。也适用于IE>8。@Teemu:回答你说得对,谢谢。我很惊讶能在这么旧的代码中看到这么“现代”的特性。我的IE问题是因为IE11中的compat模式与IE8非常相似。在那里它不可用。@sja我不知道WebApp.net有多旧,但在FF中,getter和setter从2006年发布的2.0开始就受到支持。