如何使用 es6 js 类表示法自动递增 id 值?

2024-02-06

我在 es6 中的类方面遇到一些问题。每次创建对象时,我都需要自动递增 id 值。真的不明白我如何声明变量,为 _id 赋值,然后递增增量变量。

    class Rectangle {

        constructor(name,width,height,x,y) {
            if (typeof(name) === 'string' && typeof(width,height,x,y) === 'number' ) {  
                this._id = ?;
                this._name = name;
                this._width = width;
                this._height = height;
                this._x = x;
                this._y = y;

                var div = document.createElement("div");
                document.body.appendChild(div);                 
                div.id = this._id;
                div.style.width = this._width + "px";
                div.style.height = this._height + "px";
                div.style.backgroundColor = "#ededed";
                div.innerHTML = name;


            }

            else  {
                alert("No way!");
                return false;
            }


        }

        moveObj(dx,dy) {
            this._x = this._x + dx
            this._y = this._y + dy
            console.log(this._x,this._y)
            return this;
        }

        getCoords() {
            let x = this._x;
            let y = this._y;
            return [x,y];
        }
    }

只需在 Rectangle 类中添加一个 ID 生成器作为静态方法即可:

class Rectangle {

  constructor() {
    this._id = Rectangle.incrementId()
  }

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

如何使用 es6 js 类表示法自动递增 id 值? 的相关文章

随机推荐

  • 如何在 Python 中的 Opencv Cam 窗口中提供启动、停止、捕获和关闭按钮

    如何在视频捕获窗口中提供开始 停止 捕获和关闭按钮来启动 停止 拍摄快照 关闭窗口 我使用以下代码打开相机进行视频流 import cv2 cv as cv cv NamedWindow camera 1 capture cv Captur
  • 3ds Max .NET SDK 和创建参考制作器

    我有 Net DLL for Max 和 ui 我想对视口中某些节点的参数更改做出反应 我想到的最简单的解决方案是创建 ReferenceMaker 插件并为我想要观看的节点设置参考 根据文档应该是 public class Referen
  • Valgrind 导致长双精度数字问题

    我的代码中有以下函数 用于检查数字是否具有允许的值 在日志空间中 template
  • ASP.NET MVC 3 模型绑定资源

    我正在寻找一个很好的资源 它非常全面地描述了模型绑定如何与 ASP NET MVC 3 或在较小程度上 MVC 2 和不同的方法一起工作 除了零碎的内容之外 我找不到关于这个主题的任何好的资源 网上的信息更多的是关于 如何做 X 而不是解释
  • ASP.NET MVC3 - 您如何处理探测请求?

    我们的网站上线了 当然 我们开始收到大量的探测请求 喜欢 blog wp login php admin admin php etc 所以问题是 你用它们做什么 现在 在每种情况下都会抛出 404 错误 并且 elmah 会发送有关该错误的
  • 为什么我们不能在某个进程上接受()套接字并从其子进程中接收()数据?

    我正在尝试在 Linux 上实现一个简单的 Web 服务器 它连接到客户端 浏览器 接收来自客户端的一些请求 例如 GET 然后用所需的文件发回响应 我正在使用套接字通信 我想在服务器启动时创建一个工作进程 子进程 池 其工作是处理传入的请
  • 如何将肥皂基本身份验证请求添加到 WSDL

    我怎样才能对 WSDL 进行 Soap AUTH BASIC 身份验证 以便阅读 WSDL 的人知道我需要针对特定 方法进行该操作 使用下面的示例 我成功地将 SOAP 基本身份验证传递到另一端的 php Web 服务 PHP net So
  • PHP imageftbbox imagettftext - 简单的字母间距/字距调整?

    有谁知道使用 imagettftext 进行字母间距 字距调整的简单方法 我的脚本按照我现在的需要工作 但我确实可以使用具有 CSS 样式的生成文本 letter spacing 0 01em 所以它与页面上的标准文本相匹配 但我没有看到任
  • 如何选择列表中所有无序的元素?

    这个问题源于评论里的讨论这个答案 https stackoverflow com questions 1390832 how to sort nearly sorted array in the fastest time possible
  • 如何使用executeReader()方法检索一个单元格的值

    我需要执行以下命令并将结果传递给标签 我不知道如何使用 Reader 来做到这一点 有人可以帮我吗 String sql SELECT FROM learer WHERE learer id index SqlCommand cmd new
  • 使用 CoreData 嵌套撤消组

    我想将撤消管理器添加到 coredata 支持的 iPhone 应用程序中 当用户尝试添加新对象 通过点击 按钮 时 我加载一个新的模式视图控制器并在 viewDidLoad 中启动一个新的撤消组 当用户按下 取消 按钮时 我想回滚 can
  • 删除 Spark 数据框中重复的所有记录

    我有一个包含多列的 Spark 数据框 我想找出并删除列中具有重复值的行 其他列可能不同 我尝试使用dropDuplicates col name 但它只会删除重复的条目 但仍会在数据框中保留一条记录 我需要的是删除最初包含重复条目的所有条
  • Google 街景中像素距地面的高度/标高

    我正在寻找谷歌街景中每个像素距地面的高度 我知道可以计算的几件事是 像素间距 https stackoverflow com questions 21591462 get heading and pitch from pixels on s
  • 删除特定的kafka消息

    我想指示 kafka 尽可能删除一条消息 如果使用键和日志压缩 可以将键设置为消息 ID 并将消息内容设置为 null 但我寻找更直接的东西 不依赖于设置密钥 例如通过消息 ID None
  • 如何在 NSMenuItem 内绘制内联样式标签(或按钮)

    当 App Store 有更新时 它会在菜单项中显示一个内联样式元素 如下面屏幕截图中的 1 new 另一个我们可以看到这种菜单的地方是10 10 Yosemite的分享菜单 当您安装任何添加新共享扩展的应用程序时 共享菜单中的 更多 项目
  • AWS SSO、Codecommit(GRC git 克隆链接)和 npm install

    单点登录 SSO 在 AWS 账户上实施 运行后aws sso login 使用 GRC 链接 克隆节点和存储库是可行的 然而 运行npm install在 repo 中会导致不同的错误 前任 包 json dependencies com
  • 如何处理极长的LSTM序列长度?

    我有一些数据以非常高的速率 大约每秒数百次 采样 对于任何给定实例 这会导致平均序列长度很大 约 90 000 个样本 整个序列有一个标签 我正在尝试使用 LSTM 神经网络将新序列分类为这些标签之一 多类分类 然而 使用具有如此大序列长度
  • 如何更改浮动占位符的角度材料表单字段中的字体大小

    下面是角材料的形状场 当占位符正常和浮动时 如何为占位符添加 2 个不同的自定义字体大小 字体大小 20px 正常时 字体大小 13px 当它浮起来并变小时
  • 推送路线时将对象作为 prop 传递

    该功能位于路由器视图之外的组件中 goToMarkets this router push path markets params stock this model 但该道具在 市场 组件中未定义 Router const routes p
  • 如何使用 es6 js 类表示法自动递增 id 值?

    我在 es6 中的类方面遇到一些问题 每次创建对象时 我都需要自动递增 id 值 真的不明白我如何声明变量 为 id 赋值 然后递增增量变量 class Rectangle constructor name width height x y