如何更改 ES6 中的类原型

2024-06-24

以下是我的类,它的原型值没有改变,(我正在 Chrome 控制台上工作)

class Rectangle {
    constructor(length, width) {
        this.length = length;
        this.width = width;
    }

    getArea() {
        return this.length * this.width;
    }

    static create(length, width) {
        return new Rectangle(length, width);
    }
}

我正在将类的原型更改为 null

Rectangle.prototype= null

当我尝试访问更改后的原型时,该值与矩形的“getArea”原型属性保持相同的“对象”

但在 ES5 中,原型值发生了变化。


In ES6, the .prototype property of classes is not writable and not configurable1. Use strict mode https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode where you do the assignment and you'll get ReferenceError exception "Invalid assignment in strict mode".

If you want to overwrite the .prototype (which is a very bad idea in general), you'll have to use Object.defineProperty(Rectangle, "prototype", {value: …}).

1: See §14.5.14 ClassDefinitionEvaluation http://www.ecma-international.org/ecma-262/6.0/#sec-runtime-semantics-classdefinitionevaluation, step 16: Perform MakeConstructor(F, writablePrototype=false, prototype=proto).

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

如何更改 ES6 中的类原型 的相关文章

随机推荐

  • 如何防止 Django 解释包含大引号的块?

    我正在开发一个使用 Django 模板的网站 并且我必须生成包含成对的大引号的 HTML 有没有办法禁用 Django 对代码块的标签处理 像文字块标签这样的东西会很好 这样 literal LITERAL BRACES endlitera
  • 在 Windows 应用程序中保存用户凭据

    是否有在 NET Windows 应用程序中存储凭据的最佳实践方法 无论是内置 API 还是只是推荐的加密算法 与 Tortoise SVN Spotify 和 Skype 一样 Edit 我的目的是使用一个从其身份验证服务返回令牌的 We
  • 在 PHP 中渲染视图

    我正在编写自己的 MVC 框架 并已涉及视图渲染器 我将控制器中的变量设置为 View 对象 然后通过 phtml 脚本中的 echo this gt myvar 访问变量 在我的 default phtml 中 我调用方法 this gt
  • 使用 Open XML SDK 从 Word 文档获取特定页面

    我想将文档的每一页转换为单独的word文档 所以我需要获取文档的每一页 我无法区分开放 xml 格式的页面 所以请让我朝着正确的方向前进 using WordprocessingDocument document Wordprocessin
  • RecyclerView 未滚动到底部

    我遵循 recyclerview 指南并为我正在制作的应用程序构建了一个 但由于某种原因它没有滚动到底部 我将它与谷歌代码片段以及在线其他代码片段进行了比较 看不出有什么区别 我已经发布了一张图片和我正在使用的代码 我正在使用选项卡 因此
  • 元素描述符的 .kind 属性必须是“method”或“field”

    我正在关注以下文档mobx react router https github com alisd23 mobx react router但在尝试运行我的应用程序时 我在浏览器中收到以下错误 Uncaught TypeError An el
  • 多个变量之间的平等比较

    我遇到一种情况 我需要检查多个变量是否具有相同的数据 例如 var x 1 var y 1 var z 1 我想检查 x 1 和 y 1 z 1 是否 可能是 1 或其他值 除了这个之外 有没有什么捷径可以实现类似的效果 如下所示 if x
  • “文件:///”和“文件://”之间的区别

    我都尝试了 结果都一样 有什么区别吗 仅针对利息 我有一个加载本地数据的 WebView 并且能够传递这样的 URL Example webView loadUrl file storage emulated 0 folder1 folde
  • Java 中菱形运算符 (<>) 的作用是什么?

    java 7 中的菱形运算符允许使用如下代码 List
  • 如何在aspasp.net MVC中隐藏Webgrid中的列?

    我是 MVC 新手 我使用Webgrid展示一些客户价值 我需要将列及其标题隐藏起来 我该怎么做呢 CSS gridhide visibility hidden Code grid Column Id ID style gridhide 我
  • 引起原因:java.lang.NoClassDefFoundError:使用引导类加载器找不到类;没有可用的堆栈

    我有安卓应用程序 当我在 Eclipse 上运行或调试应用程序时 它可以顺利运行 没有错误 没有警告 之后我得到了 Google Play 的 apk 用户从 Google Play 市场下载时遇到以下错误 请帮助我 我无法解决这个问题 它
  • AngularJS 控制器内的函数

    我有一个代码片段 其中有一个 Angular 模块化控制器 但同一控制器内有一个函数并带有一个调用 这让我怀疑 Javascript 或 Angular 是否允许这种编码方式 如果是 那么它如何读取它 请参阅我的以下代码格式 obj con
  • 从视频中删除所有非关键帧,无需重新编码

    我有一个 HEVC mkv 视频 我需要从中删除除关键帧之外的所有内容 而无需重新编码整个内容 我发现我可以使用这个额外的关键帧 ffmpeg i full mkv c v copy vf select eq pict type PICT
  • 如何选择网格结果中显示的项目

    div class x grid3 scroller div class x grid3 body div class x grid3 row table class x grid3 row table tbody tr td class
  • Sitecore 以编程方式添加布局。值不能为空。参数名称 路径

    在我之前的问题中 我弄清楚了如何在 Sitecore 中以编程方式添加布局 当布局和子布局与标准值相同时 这可以正常工作 但是当这是不同的时候 我得到一个值不能不为空 参数名称 路径错误 我以编程方式添加布局 因为要求是在选中复选框时添加移
  • Jlabel 组件从我的 Netbeans 调色板中消失了

    我一直在研究 netbeans 编写一些 Java 代码 在设计 Jframe 时 我在 Palette 上找不到 JLabel 组件 image http img15 hostingpics net pics 524059label pn
  • 当浮动应用于其子元素时

    我正在尝试在我的网站的主容器中创建一个元素容器 为了使元素容器排成一行 我应用了float left 给他们 但是当我添加float对他们来说 主容器缩小了 我尝试申请clear both到主容器 但没有任何变化 CSS main cont
  • 将通知消息设置为请求属性,该属性应在 sendRedirect 之后显示

    我创建了两组 servlet 视图和控制器 处理程序 Views 执行简单读取并将数据转发到JSPs 控制器 执行数据库更新或插入并向任一JSP或视图类型 servlet 这里的通知是给用户的状态消息 示例 您已成功更新等等 如果我使用re
  • Ionic Android 构建失败:无法启动守护进程

    当我跑步时ionic build android release我收到一个错误 Error occurred during initialization of VM Could not reserve enough space for 20
  • 如何更改 ES6 中的类原型

    以下是我的类 它的原型值没有改变 我正在 Chrome 控制台上工作 class Rectangle constructor length width this length length this width width getArea