- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试使用 Symbol
创建对象键并用 Symbol.for
找到对应的值,但它不起作用:
const sym = Symbol("x");
let obj = {
[sym]: "val"
}
console.log(obj[sym]); // "val"
console.log(obj[Symbol.for("x")]); // undefined, but expected "val"
最佳答案
使用 Symbol()
创建的符号是唯一且不可变的,因此您可以引用它的唯一方法是将其分配给变量。
需要注意的是,构造函数参数实际上是对符号的描述,而不是键。来自 MDN:
A description of the symbol which can be used for debugging but not to access the symbol itself
Symbol.for
另一方面,使用指定的键将符号存储在全局注册表列表中,因此为了让您的示例工作,您需要使用
Symbol.for
创建和访问符号。 :
const sym = Symbol.for("x"); // Create a symbol in the global registry
let obj = {
[sym]: "val"
}
console.log(obj[Symbol.for("x")]); // Access the symbol from the global registry
关于ecmascript-6 - Symbol() 和 Symbol.for() 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34587901/
我正在尝试为我的组件中声明的数组分配一个值。不幸的是,抛出了异常。 TypeError: Attempted to assign to readonly property 即使我删除了严格模式,仍然会
如果我将一个类导入到其他脚本中,我如何将参数传递给 ES6 语法中的类构造函数? 我想做这样的事情。我已经看到了各种建议,例如包装函数或使用工厂模式,但是否有更简洁、更简单的方法来做到这一点? //
我最近看了 ECMAScript 2015。 ECMAScript 2015 有类初始化器吗? 例如,我试着把类写得像一个解析器; class URLParser { parse(url) {
我目前正在尝试弄清楚为什么 JSDT 会发布类似“JavaScript error on valid regex”的错误'. 在我进行测试时,我意识到它适用于像这样的简单文件: var a = {
有一段时间我认为它们是同一回事,但我经常看到博客或此处的答案中的措辞似乎暗示两者之间存在差异。即使 SO 有两个不同的标签,但它们的描述并没有显示出任何明显的区别。 我四处搜索了一下,这只会增加困惑,
我最近使用了最新的 Laravel 5.3。在 gulp.js文件,有较新的 ES6 箭头函数语法: elixir(mix => { mix.sass('app.scss') .
在 block 作用域函数方面,ES6 相对于 ES5 有哪些优势?我的意思是,在这两种情况下,该 block 看起来非常相似,那么它有什么区别,性能方面哪种方法更好? ES6 block {
所以,我知道在 GWT 中我可以编写纯 javascript 代码的 JSNI 代码。但是,不幸的是,如果我在其中使用 ES6 代码,JSNI 代码将无法编译。 这意味着,例如,我不能做这样的事情:
所以,我知道在 GWT 中我可以编写纯 javascript 代码的 JSNI 代码。但是,不幸的是,如果我在其中使用 ES6 代码,JSNI 代码将无法编译。 这意味着,例如,我不能做这样的事情:
如何在 Visual Studio Code 中编写 ECMAScript 代码??我尝试编写 jsconfig.json 但不确定如何运行该文件。我什至尝试更改 tasks.json 但即使那样也无
尽管事实是const不能在 ECMAScript 2015 中赋值,如果对象没有被卡住,可以修改 Object.freeze . 自 const应该是不可变的,添加 Object.freeze 有意义
当我打开我的项目 .js 文件时,会出现以下警告: File watcher 'Babel' is available for this file. Description: 'Transpiles
我接受了 JavaScript 前端开发人员职位的面试。我失败了,因为我不知道一些高级问题。请帮助我至少理解这一点。 我的问题在于 ECMAScript 6 知识,而不是 ECMAScript 5 中
本文介绍ECMAScript 6即将带给我们新的数组操作方法,以及在怎样在现有浏览器应用这些新的数组特性。 Note: 我将使用交替使用构造器(constructor)和类(class)两个术语。
我指的是 https://tc39.es/ecma262/#sec-regexp-regular-expression-objects 中定义的 ECMAScript 正则表达式语法. 我通过几个在线
我有多个名为 PageX 的文件, PageY , PageZ等等 每一个都有一个 export default SETUP { path:'blah_X', component:X } . 在我的
也许这是一个基本问题,但是两者之间有什么区别: -在ES3支持下开发的一个Web项目, -在ES5支持下开发的Web项目? 换句话说,如果您支持ES5,则可以在项目中添加哪些增强功能? 最佳答案 在这
这个问题在这里已经有了答案: One-liner to take some properties from object in ES 6 (12 个答案) 关闭 6 年前。 是否有一个我正在空白的单
一段时间以来,我一直在使用 ES6 提供的模块。虽然我(本能地)知道最好使用它们,但我很难解释为什么。 带模块; 我可以做依赖声明(不是注入(inject))。我不必为我加载的每个 javascrip
从不可变映射中获取多个值的最佳方法是什么? const example = new Map({ id: 1, first: 'John', last: 'Smith',
我是一名优秀的程序员,十分优秀!