为什么无法使用 const 关键字分配 JavaScript 对象的常量属性?

2023-12-23

首先,我问是否可以:如何使用 const 关键字创建 Javascript 常量作为对象的属性? https://stackoverflow.com/questions/10843572/how-to-create-javascript-constants-as-properties-of-objects-using-const-keyword

现在,我要问:为什么?对我来说,答案似乎是“只是因为”,但做这样的事情会非常有用:

var App = {};  // want to be able to extend
const App.goldenRatio= 1.6180339887  // throws Exception

为什么在激活对象上设置的常量可以工作,但在其他任何对象上设置时却不起作用?

如果可能的话,会造成什么样的损害?

目的是什么const,如果不是为了防止公共 API 被更改呢?


如果您希望在现代浏览器中获得不可更改的值,请使用defineProperty https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineProperty创建不可写(又名只读)属性:

var App = {};
Object.defineProperty(App,'goldenRatio',{value:1.6180339887});
console.log( App.goldenRatio ); // 1.6180339887
App.goldenRatio = 42;
console.log( App.goldenRatio ); // 1.6180339887
delete App.goldenRatio;         // false
console.log( App.goldenRatio ); // 1.6180339887

如果你没有通过writable:true在选项中defineProperty它默认为false,从而默默地忽略您尝试对该属性进行的任何更改。另外,如果你没有通过configurable:true那么它默认为false并且您不能删除该属性。

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

为什么无法使用 const 关键字分配 JavaScript 对象的常量属性? 的相关文章

  • 如何使用多个 select2 框过滤表格?

    我正在尝试使用 和多个 select2 框的类来过滤表格 表格 HTML table class table tbody tr class kanban event Austin td td tr tr class csm event Ch
  • JAVASCRIPT - 为什么这个对象没有改变?

    function myFunc theObject theObject make Ford model Focus year 2006 var mycar make Honda model Accord year 1998 var x my
  • 获取被调用的 javascript 文件的查询字符串

    是否可以在调用的 javascript 文件上使用 javascript 获取查询参数 如下所示 in html in file js console log this location query 这是否可能以某种方式实现 或者我必须使用
  • Javascript 进程是否有多个执行线程?

    背景 我正在创建一个 地址簿 类型的应用程序 有很多条目需要加载 一个想法是首先加载一小部分条目 让用户开始 然后将剩余条目排队 优先考虑用户单击的条目 例如 如果他们单击以 X 开头的名称 请先加载这些名称 然后再处理队列的其余部分 这个
  • 以下文档我无法创建 Vue.js 3 的实例

    The code https stackblitz com edit vue ttt file src main js https stackblitz com edit vue ttt file src main js 问题 我正在尝试在
  • 检测 Webkit/Chrome 中 HTML5 数字控件更改的事件?

    HTML5 为我们提供了一些新的输入元素 例如
  • C# 无法覆盖继承的成员

    我正在从一本名为 Chegwidden Gladdis 的书中学习 C 我正在制作与书中编写的相同的程序和相同的代码 但有一个问题 我无法重写父类中的方法 我从章节一开始就读完了这本书 读了五遍 一切都是一样的 但我不明白为什么我不能重写父
  • 如何通过setTimeout函数定期打印数字?

    var i 0 function counter for i i lt 100 i setTimeout gt console log i 2000 counter 我想以 2 秒的间隔打印 i 但它立即打印 每次打印调用只需要几微秒 为什
  • 使用javascript以编程方式触发iOS safari中的复制菜单?

    我正在尝试实现一种用户友好的方式 将一些文本从文本输入字段复制到 iOS Safari 上的剪贴板 我知道无法在这个平台上以编程方式完成此操作 但我希望能够尽可能地指导用户体验 在 iOS Safari 上 当用户手动突出显示某些文本时 会
  • jquery 中的函数返回未定义[重复]

    这个问题在这里已经有答案了 我在 jquery 中调用的函数返回未定义 我检查了该函数 当我对其进行调试时 它返回正确的数据 function addToPlaylist component type add to pl value pl
  • jQuery:将文本区域滚动到给定位置

    我有一个包含很多文本的文本区域
  • Firefox Addon 中的 JQuery 导致多个警告

    我在 Firefox 插件中使用 jquery 但我不断收到大量警告消息 如下所示 anonymous function does not always return a value System JS WARNING resource g
  • 播放没有音频标签的音频

    是否可以在没有音频标签的情况下仅使用 javascript 播放音频 我通过 tinyMce 编辑器注入脚本 因为我无权访问网站的后端 并且它不支持客户端的音频标签 她只想要当您将鼠标悬停在图像上时发出简单的声音 我已经完成了所有设置 但是
  • 如何知道 .keyup() 是否是字符键(jQuery)

    如何知道 keyup 是否是字符键 jQuery input keyup function if key is a character such as a b A b c 5 3 2 etc not enter key or shift o
  • 从字节数组设置 img src

    我需要设置img src我在对象中拥有的字节数组的属性 img
  • Angular JS - 使服务可以从控制器和视图全局访问

    假设我们有以下服务 myApp factory FooService function 然后 从控制器中 我会说 myApp controller FooCtrl scope FooService function scope FooSer
  • 如何将MathJax公式转换为img

    Mathjax 现在在我的项目中运行良好 但有一个问题 有没有办法将MathJax的公式 纯html和css 转换成img文件 我可以保存 MathJax 可以配置为生成 SVG 看http docs mathjax org en late
  • 如何在 TypeScript 中使用 navigation.replace ?

    我试图在我的代码中使用它 const navigation useNavigation navigation replace AllFriends 但我不断收到错误消息 Property replace does not exist on
  • Java 中序列化的目的是什么?

    我读过很多关于序列化的文章 以及它如何如此美好和伟大 但没有一个论点足够令人信服 我想知道是否有人能真正告诉我通过序列化一个类我们真正可以实现什么 让我们先定义序列化 然后我们才能讨论它为什么如此有用 序列化只是将现有对象转换为字节数组 该
  • 将引导程序弹出框保留在视口内

    我正在尝试使用带有按钮的侧边栏创建一个菜单 每个按钮都有一个指定的包含相关数据的弹出窗口 不幸的是 其中一个弹出窗口可能包含任意数量的行 并且在某些情况下它可能部分位于视口之外 See http jsfiddle net bfd9f 1 h

随机推荐

  • win 7 上可以设置单步陷阱吗?

    我正在做所谓的 seh hooking 实际上它改变了内存区域的权限并在访问时捕获异常 因此它可以挂钩该函数 它使用单步陷阱 如下所示 info gt ContextRecord gt EFlags 0x100 恢复保护PAGE NOACC
  • 如何在 Android 应用程序中使用 OSM 地图?有没有关于在 android 中使用 OSM 的教程?

    我正在寻找教程 手册或步骤 将开放街道地图包含到我的 Android 应用程序中 我发现的只是一个具有更多功能的大项目 否则很多问题都没有关于 如何 的正确结论 有没有合适的博客 网站或文档可供新手参考 我不知道有任何教程 但这是我使用 O
  • Excel 列表框仅显示当前日期输入的条目

    我想请求您帮助仅显示当前日期的列表框条目 我这里有一个示例 其中包含先前日期输入的条目以及今天日期的条目 每次我输入另一个条目时 之前日期的条目仍然会显示 所以我想实现的是 当我今天输入另一种颜色时 我将看到今天输入的颜色 不包括之前日期输
  • Azure 流分析 -> 我对路径前缀到底有多少控制权?

    我想根据来自事件中心的一些数据设置前缀 我的数据是这样的 id 1234 我想编写一个类似于以下内容的 blob 前缀 foo id guid 最终我希望每个 id 都有一个 blob 这将有助于它如何被下游的一些事物消耗 我没有看到创建与
  • 使用 PHP 将数组插入 MySQL 数据库

    我想将以下数组存储在数据库中 insData array uid gt fbme id first name gt fbme first name last name gt fbme last name email gt isset fbm
  • 如何make_shared派生类?

    我想使用make shared
  • 在 x64 模式下运行时可以生成 x86 哈希值吗?

    本周 当我的代码托管在 x64 进程中时 我遇到了一个错误 我正在使用哈希值进行查找 并将该哈希值存储在数据库中 过去生成的哈希值是 x86 哈希 现在生成 x64 哈希 我收到错误 因为查找值不再匹配 我对此非常怀疑 但我想我还是要问一下
  • 检查输入的类型是否为“文本/数字/电子邮件/等”?

    我需要使用 Javascript 不是 jQuery 检查给定的输入元素是否可由用户使用键盘写入 我想排除复选框 单选按钮 重置 提交 图像等 有没有一种简单的方法可以在不列出所有输入类型的情况下做到这一点 这是我现在的代码 if elem
  • Automator + Applescript 如何:新桌面(在其中打开日历和提醒)

    标题就是我想要达到的目标 在 Automator 中 我尝试简单地记录打开新桌面 然后打开其中的应用程序的操作 但我得到了 Watch Me Do 操作遇到错误 检查操作的属性并尝试再次运行工作流程 此外 如果我这样做 记录的动作是 单击桌
  • 如何在ASP.NET开发的Azure Web App上获取客户端的IP地址?

    我开发了一个 Web 应用程序 该应用程序作为 Web 应用程序部署在 Azure 上 我需要获取客户端的 IP 地址 以便我可以使用 GeoIP API 获取客户端连接所在的国家 地区 那么我的问题是 当客户端发送查看主页的请求时 如何获
  • 如何删除cassandra物化视图中的一行?

    我有一个 cassadra 命名空间 其中包含一个表和一个物化视图 基表中的一行被删除 但更改并未传播到物化视图 我不知道发生这种情况的确切原因 所以现在我被MV中的那一行困住了 无法删除它 有任何想法吗 是的 物化视图仍然很不完善 两个主
  • 如何将应用程序返回堆栈保存到包中?

    我想保存应用程序的状态 以便当从关闭状态重新打开它时 最后一个片段可见并且保留返回堆栈 我想在每次关闭应用程序时保留此状态 而不仅仅是在方向更改或系统终止应用程序以释放资源时 就像使用时的情况一样 onSaveInstanceState o
  • Spark Cassandra 连接器 - 分区键的范围查询

    我正在评估 Spark cassandra connector 并且正在努力尝试对分区键进行范围查询来工作 根据连接器的文档 似乎可以使用相等或 IN 运算符对分区键进行服务器端过滤 但不幸的是 我的分区键是时间戳 因此我无法使用它 所以我
  • 配置电子标签

    我使用 Yslow 作为一个简单的速度基准测试工具 但我遇到了一个非常令人困惑的概念 电子标签 所以主要问题是 如何配置电子标签 我在 yslow 的成绩说 有 19 个组件的 ETag 配置错误 http thehotelinventor
  • Oracle 查询以匹配表中所有行中列表中的所有值

    我有一个表结构如下 ID A B 1 a a1 2 b b1 3 a a2 4 c a1 5 b b2 我想要 A 列中的这些值 它们与列表中 B 的所有值相关 例如 我有一份 A 的清单 a1 a2 输出应该是a c is NOT在结果中
  • 当 `PostAuthenticateRequest` 被执行时?

    这是我的Global asax cs file public class MvcApplication System Web HttpApplication public static void RegisterRoutes RouteCo
  • 数据绑定 - onActivityResult 之后 XML 未更新

    更新中ObservableField inside onActivityResult of activity但没有反映该价值XML 如果我调用executePendingBindings 它将起作用 但问题是 有很多ObservableFi
  • 将音符写入 wav 文件

    我对如何提取音符 例如 A B C 等 或和弦 同时多个音符 并将其写入 wav 文件感兴趣 据我了解 每个音符都有一个与之相关的特定频率 完美的音高 例如 A4 中间 C 上方的 A 是 440 Hz 完整列表的 2 3 向下 这一页 h
  • 如何访问项目 C# 中 bin 文件夹内的自定义文件夹

    目前 我获得了项目内文件夹的完整路径 从长远来看 这是不可持续的 我需要这样的东西 var path Path GetDirectoryName Assembly GetEntryAssembly Location 但不是访问bin Deb
  • 为什么无法使用 const 关键字分配 JavaScript 对象的常量属性?

    首先 我问是否可以 如何使用 const 关键字创建 Javascript 常量作为对象的属性 https stackoverflow com questions 10843572 how to create javascript cons