ES6 中的类声明和类表达式

2024-04-12

我不清楚类表达式和类声明。请帮助我理解它们之间的区别。

Thanks


这相对简单。

在“类表达式”中,类对象NamedFoo被分配给一个名为的变量Foo,像这样:

var Foo = class NamedFoo {
  constructor() {}
  whoIsThere() {
    return NamedFoo.name;
  }
}

在“类声明”中,类对象NamedFoo仅由其自身声明,如下所示:

class NamedFoo {
  constructor() {}
  whoIsThere() {
    return NamedFoo.name;
  }
}

这里的区别还在于,当它是“类声明”时,您可以通过使用来引用该类NamedFoo但是,当它是“类表达式”时,您只能通过分配给它的变量来引用该类,在这种情况下Foo.

我希望这有帮助!

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

ES6 中的类声明和类表达式 的相关文章

  • Laravel Mix 未将vendor.js 转译为es5

    Laravel Mix 似乎没有将vendor js 和manifest js 转译为ES5 它在 iPhone Safari 和 IE 11 上失败 IE DevTools 显示以下错误 而且看起来它仍然具有 ES6 的特性 其他文件似乎
  • 静态元素交互

    我有以下代码 Enabled id gt let removal null if this props disabled removal span gt this onDelete id gt x span return removal 它
  • SAP Web IDE 显示有关 ES6+ 功能的错误

    for var items in selectedContexts var downloadModel parsed parsed items toString split 1 parsed items toString split 2 v
  • Typescript 阻止节点/模块工厂模式:错误 TS4060

    当使用 ES6 模块语法导出返回 Typescript 类实例的工厂函数时 会产生以下错误 错误 TS4060 导出函数的返回类型具有或正在使用私有名称 Paths 来自 paths ts Class scoped behind the e
  • Javascript - 在 ES5 中扩展 ES6 类

    我正在使用以下代码作为滑块Siema https pawelgrzybek github io siema https codepen io pawelgrzybek pen boQQWy https codepen io pawelgrz
  • 流星构建中的箭头功能导致 Heroku 部署崩溃

    我在heroku上部署了一个使用meteor的js应用程序 构建在 localhost 上运行 但在 heroku 服务器上失败 我检查了日志并发现了这一点 js 312 12 2017 03 18T03 29 07 070711 00 0
  • Ecma6,Object.assign 不进行深层复制[重复]

    这个问题在这里已经有答案了 dst a 1 src edf zyx right Object assign dst src src edf zyx wrong console log dst edf zyx 我期待看到 right 作为输出
  • ECMAScript 规范是否允许 Array 成为“超类”?

    我正在寻找任何迹象表明 超类化 内置类型是否有效根据规格 也就是说 给定任何假设的 ECMAScript 一致实现 超类化 内置函数是否会通过影响类构造函数的创建算法来破坏运行时 超一流 我创造的一个术语 指的是一个类 其通过构造它或将其作
  • 如何正确阅读EcmaScript规范

    我对 JavaScript 二进制逻辑运算的 它是如何工作的 知识感兴趣 但我陷入了步骤解释 这就是规格的描述 12 13 3 https www ecma international org ecma 262 8 0 index html
  • 在 Express + NodeJS 应用程序的控制器中使用 ES6 类或对象文字

    有两件事我很困惑 使用任何 ES6 类或对象文字的优点是什么 我应该在哪里使用它们 下面提到了我正在尝试的一些示例 请让我知道何时使用特定的实现方式 何时不使用 类例1 auth js class Auth login req res si
  • 意外的解构行为,在更深层次解构时必须声明一个键两次[重复]

    这个问题在这里已经有答案了 我在 ES6 中进行一些解构 遇到了意想不到的情况 这是所发生事件的一个简单版本 let obj x y 5 let x y obj console log x x is not defined console
  • 如何全局公开 es6 模块

    我需要编写一个可在全局窗口上使用的模块 我使用 es6 创建模块 我定义的每个类都有它自己的文件 我正在使用 webpack 来 babelify 并捆绑这些类 我的模块的入口点也是包含要公开的全局的文件 我尝试了各种方法来实现这一点 包括
  • 多个 if else 条件的替代方法[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我有多个条件需要检查和执行 如下所示 if date current date source s3 table name Table1 else
  • 使用继承的 ES6 React 类时未触发 componentDidMount 方法

    我试图在 React 中使用 ES6 类 并希望所有组件都继承某些方法 但是一旦我尝试扩展扩展 React Component 类的组件 componentDidMount 方法就不会触发 因此什么也不会发生被渲染 我正在使用的代码 基础组
  • Javascript:将 JSON 字符串转换为 ES6 映射或其他形式以保留键的顺序

    ES6 或后续版本 Javascript 或 TypeScript 中是否有原生 内置 方法将 JSON 字符串转换为 ES6 映射 或者可以选择要实现的自制解析器 目标是保留 JSON 字符串编码对象的键顺序 Note 我故意不使用 解析
  • ES6 模板文字可以在运行时替换(或重用)吗?

    tl dr 是否可以制作可重用的模板文字 我一直在尝试使用模板文字 但我想我就是不明白 现在我感到沮丧 我的意思是 我想我明白了 但 它 不应该是它的运作方式 或者它应该如何实现 它应该变得不同 我看到的所有示例 甚至标记模板 都要求 替换
  • 避免对象突变

    我正在使用 React 和 ES6 所以我遇到了以下情况 我有一个带有对象数组的状态假设a id 1 value 1 id 2 value 2 处于以下状态Object A 然后我将列表传递给Object B通过道具 Object B 在构
  • JavaScript - 类根据条件扩展

    事情是这样的 我有一个名为 A 的主课 我希望这个班级能够扩展 B 级 class A extends B 但事实上 我希望 B 类在特定条件下扩展 C D 或 E class B extends B1 or class B extends
  • Object.defineProperty:dom元素属性的setter

    我无法完全理解如何Object defineProperty适用于 dom 元素 在普通的 javascript 对象上它就像一个魅力 var obj name john Object defineProperty obj name get
  • 发布到 npm 时出现问题

    所以我尝试使用 React 构建一个开源项目并将其推送到 npm 问题是 我的组件虽然在测试环境中运行良好 安装到其他组件 但当我将其发布到 npm 并下载包并尝试访问它时 它给了我一个错误 这是代码的一个小示例 import React

随机推荐