首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >了解JavaScript运行时

了解JavaScript运行时
EN

Stack Overflow用户
提问于 2012-09-23 03:52:01
回答 1查看 130关注 0票数 1

考虑以下JavaScript对象

代码语言:javascript
复制
var planet = {
    id: 1001,
    Name: "Mars",
    faction: {
        factionId: 2,
        notification: function () {
            document.write("Mars notified");
        }
    },
    cities: [
        { locationId: 15, name: "Gladius" },
        { city: "MyPlanet", geo: "universal" }
    ]
}

当我试图在Chrome Debugger窗口中读取planet.cities时,我看到了这些额外的项目。

这些是JavaScript运行时引擎的一部分吗?不同的浏览器对它们的处理方式是否有所不同?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-23 03:54:46

每个JavaScript都有一个它继承的原型对象(EcmaScript §4.2.1)。这通常被称为“内部[[prototype]]属性”(EcmaScript §8.6.2)。FF和Chrome将其公开为非标准(和不推荐)的__proto__ property是特定于实现的。

您看到的这些附加属性位于Object.prototype (EcmaScript §15.2.4MDN)上,所有普通对象--以及您的对象文字--都继承自这些属性。同样,双下划线属性是特定于实现的,现在已被属性描述符弃用(请参阅Object.defineProperty at MDN)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12547187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档