将 Object.defineProperties 与符号一起使用是否有效?

2024-01-07

我们来看下面的代码:

var obj = {};
var x = Symbol();
Object.defineProperties(obj, {
  [x]: {
    value: true,
    writable: true
  },
  "property2": {
    value: "Hello",
    writable: false
  }
  // etc. etc.
});
console.log(obj[x])

这是有效的吗?

使用本机 Object.defineproperties 代码,我们在 console.log 中得到 true。

使用 zone.js 的 polyfill

其形式为:

  Object.defineProperties = function (obj, props) {
    Object.keys(props).forEach(function (prop) {
      Object.defineProperty(obj, prop, props[prop]);
    });
    return obj;
  };

我们得到了 console.log 的相同代码未定义。

这是因为 Object.keys 函数。我用谷歌搜索了一下,没有找到任何地方是否应该允许这样做。


我用谷歌搜索了一下,没有找到任何地方是否应该允许这样做。

在这种情况下,您可以随时检查规格§ 19.1.2.3 Object.defineProperties(O, 属性) http://www.ecma-international.org/ecma-262/6.0/#sec-object.defineproperties.

它使用OwnPropertyKeys内部方法 http://www.ecma-international.org/ecma-262/6.0/#sec-ordinary-object-internal-methods-and-internal-slots-ownpropertykeys,它确实列出了对象的所有字符串和符号键。

这是因为Object.keys功能

正确的。它应该是Object.getOwnPropertyNames(props).concat(Object.getOwnPropertySymbols(props))反而。您可能想提交 zone.js 的错误。不过我确实想知道为什么 ES5 需要一个 polyfillObject.defineProperties当你使用 ES6 符号时函数?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Object.defineProperties 与符号一起使用是否有效? 的相关文章

随机推荐

  • 用于迭代 NumPy 数组的惰性求值

    我有一个 Python 程序 可以处理相当大的 NumPy 数组 数百兆字节 这些数组存储在磁盘上的 pickle 文件中 每个文件一个约 100MB 的数组 当我想对数据运行查询时 我通过 pickle 加载整个数组 然后执行查询 这样从
  • 创建 iPhone 地图应用程序

    我如何为 Iphone 创建地图应用程序 我知道 UIwebView 可以用来显示地图 但是 iPhone 上是否有可用的本机 API 本机 iPhone 地图应用程序使用的 看一下CloudMade的简单框架 http developer
  • 将电子表格范围复制到文档[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 How can I copy a range of a Sheet into a Doc which I created in App
  • Python 与 C/C++ 中比较运算符的优先级

    在 C C 中 比较运算符例如 lt gt 优先级高于 做 该代码将计算为true or 1 if 3 lt 4 2 lt 3 3 lt 4 2 lt 3 will evaluate to true 但在Python中 似乎是错误的 3 l
  • 不支持您提供的授权机制。请使用AWS4-HMAC-SHA256

    我收到一个错误AWS S3 Errors InvalidRequest The authorization mechanism you have provided is not supported Please use AWS4 HMAC
  • 从数组中删除元素(Java)[重复]

    这个问题在这里已经有答案了 有没有快速 而且美观 的方法来从 Java 数组中删除元素 您可以使用 commons lang 的 ArrayUtils array ArrayUtils removeElement array element
  • 更改 Android PopupMenu 文本颜色不起作用

    另一个 android 主题风格问题 因为我搜索了该网站并且无法在这里找到答案 这就是我的问题 我试图更改操作栏溢出显示的 PopupMenu 的文本颜色 但它没有改变 它可以很好地改变背景 但不能改变文本颜色 顺便说一句 这是由 Andr
  • 按键图标不起作用

    我正在为我的软键盘使用以下代码 这是其中的一部分
  • 访问reactiveValuesToList中的reactiveValues

    而不是单独指定fileInput变量 我想使用reactiveValues存储上传的 CSV 数据帧 以某种方式操作它们 然后存储它们以供以后访问 我的设计是通过文件名命名每个数据帧并附加到reactiveValuervTL 我的问题是 如
  • 将固定的、透明的标题附加到 ListView?

    我已经尝试让它工作一段时间了 有什么方法可以在列表视图上放置透明的固定标题 所以它看起来有点像这样 当您向上滚动时 标题最终将成为常规标题 其下方包含项目 1 我想我必须实现 onScrollListener 并执行类似的操作 例如当第一个
  • JavaScript filter() 方法混淆

    我正在努力通过JavaScript 权威指南作为 的一部分正确学习 JavaScript http javascriptissexy com how to learn javascript properly 我很难推理出filter 第 7
  • 在 Spring MVC 中将 ContextLoaderListener 添加到 web.xml

    我是新来的春季MVC 我有一个网络应用程序 我有以下配置
  • 403 ERROR 请求无法满足

    我有一个带有单引号的网站 我无法浏览该网站 并且很少有在同一域上具有相同字符的网站 它会被重定向 并且我能够打开该 URL l Union Europ enne Dans l Europe xxxxx html 从网址中删除单引号后 我可以
  • Jenkins:如何在多分支项目中指定 jenkinsfile

    使用 Jenkins 进行多平台多分支构建 我有多个多分支管道项目 每个平台一个 因为每个平台需要明显不同的构建步骤 我有一个包含多个分支的代码存储库 这就是多分支管道项目有意义的原因 我想让每个多分支管道项目引用不同的 Jenkinsfi
  • drop && !has.j 中的错误:使用 sum(complete.cases) Windows7 R3.2.1 时,'x && y' 中的 'x' 类型无效

    我对 R 编程和一般编程都很陌生 这是我编写此脚本的目标 我有 332 个 csv 文件 我想 编写一个函数来读取充满文件的目录并报告每个数据文件中完全观察到的案例的数量 该函数应返回一个数据框 其中第一列是文件名称 第二列是完整案例数 函
  • Laravel 4 控制器中的测试会话

    我在 Laravel 4 中测试控制器时遇到问题 我有下一个代码 public function getRemind status Session get status error Session get error email Sessi
  • 我可以使用预加载 JSON 数据的 jsTree 并使用 Ajax

    我让 jsTree 处理 JSON 数据 JSON 数据代表服务器的文件系统 用户可以从树中选择一个文件夹 然后将其添加到文件夹输入字段中 我不希望在没有提供文件系统前三层的情况下加载页面 但是 我不会解析整个文件系统 因为这会花费太长时间
  • 在 Modelica 模拟中包含因果关系会导致模型扁平化时出现平移错误

    我想模拟基于能量工作的质量弹簧模型的控制器 model model parameters parameter Real m 1 parameter Real k 1 parameter Real Fmax 3 parameter Real
  • 从其他组件访问数据-React Native

    我必须访问前一个组件中的对象才能在当前组件中显示 我正在尝试发送状态参数作为导航方法的第二个参数 this props navigation navigate detail objPass this state stObjPass 尝试访问
  • 将 Object.defineProperties 与符号一起使用是否有效?

    我们来看下面的代码 var obj var x Symbol Object defineProperties obj x value true writable true property2 value Hello writable fal