javascript - Chrome 中的 Symbol 功能是什么?

标签 javascript google-chrome

我试着检查 MDN 上的资源,但我遇到的唯一一个是 this ,并且没有提到任何现有的此类功能。

我在 Chromium 中看不到这个 Symbol 函数,但我在 Chrome 中看到了它(不稳定,v35)。考虑到 Firefox 或 Chromium 中没有,这只是一些实验性技术吗?

Screenshot from console

最佳答案

这是一种在对象上定义“私有(private)”成员的机制。这对于正确封装 ECMAScript 对象非常有用,无需使用闭包、WeakMaps 或其他技术来隐藏对象的私有(private)数据。

可在此处找到当前规范: ES6 Draft - Symbol

以下是一些使用示例以及其他技术: Private properties in JavaScript

这是一个例子:

var Person = (function () {
    var name_ = new Symbol();
    function Person(name) {
        this[name_] = name;
    }
    Person.prototype = Object.create(Object.prototype, {
        name: { get: function () { return this[name_]; } }
    }
})();

在上面的例子中,name_ 符号在闭包之外是不可访问的,并且没有向对象添加任何可以被任何 ES5 方法反射(reflect)的键。 name_ 符号必须可供外部代码访问,以便在从 Person 构造函数构造的实例上访问与其关联的值。

关于javascript - Chrome 中的 Symbol 功能是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22420937/

相关文章:

javascript - 如何为 JavaScript 生成的所有 div 放置一个 EventListener

javascript - Angular 指令不会触发 ngModel 中的更改事件

ios - 如何在iOS objective-c 中打开链接时启动Chrome浏览器

c# - 如何使用 C# 或 Python 与谷歌浏览器通信

javascript - Chrome 扩展通知仅显示一次

javascript - 正在播放 : Make Youtube Video Full Screen

javascript - 单击 anchor 会将我带到底部,而不是恢复之前的位置

javascript - 我如何解析来自 openlibrary api 的 Json 数据? (适本地)

android - 在 Android 版 Google Chrome 移动版中禁用滑动到新标签手势

css - 为什么灰色背景颜色仅出现在 Google Chrome 中?