浏览器JavaScript中的只读属性

时间:2018-10-22 14:48:04

标签: javascript javascript-objects

我正在尝试列出浏览器JavaScript api具有的所有只读本机属性,例如window.top或window / document.location。 我没有找到这样的列表,我在Google上搜索了很多:(。 有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

根据您的评论,您正在寻找所有只读window对象属性。有人已经将您链接到此MDN list of window properties

如果您正在寻找实际的JavaScript解决方案,则可以遍历window对象上的属性,并通过Object.getOwnPropertyDescriptor检查其writable状态。

示例:

for (const prop in window) {
    // using destructuring here
    const { writable } = Object.getOwnPropertyDescriptor(window, prop);

    // an object property is by default writable,
    // absence of writable prop is equivalent to `writable=true`
    if (writable != null && writable !== false) {
        console.log(prop, 'is writable');
    }
}

还有Object.getOwnPropertyDescriptors,可让您一次拍摄所有道具。

编辑

请注意,这将包括jQuery和Google Analytics(分析)之类的全局库,最好的选择是坚持使用固定列表,例如MDN上的列表。如果您使用的是纯HTML页面,而仅使用Vanilla JS可以完全控制它,那应该没事。