我有一个函数可以推送一个新的构造函数类,但我只想让它在没有一个构造函数的情况下推送一个新的类.

现在,我的代码基本上是这样的:

class InterSpot {
  constructor(game){
    this.game = game;
    this.x = 100;
    this.speedX = 0;
    this.markedForDeletion = false;
    this.lives = 5;
    this.score = this.lives;
  }
  update(){
    this.x += this.speedX;
    if (this.x + this.width < 0) this.markedForDeletion = true;
  }
  draw(context){
    context.fillStyle = 'blue';
    context.fillRect(this.x, this.y, this.width, this.height);
    context.fillStyle = 'black';
    context.font = '20px Helvetica';
    context.fillText(this.lives, this.x, this.y);
  }
}
        class Intro extends InterSpot {
            constructor(game){
                super(game);
                this.width = 228 * 0.2; // Largeur d'une frame de l'ennemi
                this.height = 169 * 0.2; // Hauteur d'une frame de l'ennemi
                this.y = 100;
                //this.y = Math.random() * (this.game.height * 0.9 - this.height);
            }
        }

addInteractionSpot(){
  if (!this.interactionSpot.includes(Intro)) {
    this.interactionSpot.push(new Intro(this));
      console.log(this.interactionSpot);
      console.log(this.interactionSpot.includes(Intro));
    }
}

我try 使用indexof、Includes和typeof,但都不起作用.我只想检测屏幕上是否已经有一个名为‘Intro’的构造函数类,这样如果按下一个按钮,它就会消失5秒,而不是重新出现.

推荐答案

对数组中的每一项使用instanceof:

class Intro {}

let interactionSpot = [new Intro()]

console.log(interactionSpot.some(i=>i instanceof Intro))

因此,在您的代码中,代码行为:

if (!this.interactionSpot.some(i=>i instanceof Intro))

Javascript相关问答推荐

在JavaScript中使用setProperty方法试图修改css元素值时,我遇到错误

为什么新的Promises会在不需要的情况下被用来等待?

文件阅读器未读取一个文件

同步功能在中间停止

我不知道为什么我的JavaScript没有验证我的表单

是什么原因导致此Angular 16电影应用程序中因类型错误而不存在属性?

根据总价格对航班优惠数组进行排序并检索前五个结果- Angular HTTP请求

为什么我的includes声明需要整个字符串?

从mat—country—select获取整个Country数组

如何在不创建新键的情况下动态更改 map 中的项目?

从Node JS将对象数组中的数据插入Postgres表

无法访问Vue 3深度监视器中对象数组的特定对象值'

如何从Intl.DateTimeFormat中仅获取时区名称?

这个值总是返回未定义的-Reaction

第二次更新文本输入字段后,Reaction崩溃

在数组中查找重叠对象并仅返回那些重叠对象

以编程方式聚焦的链接将被聚焦,但样式不适用

当我点击一个按钮后按回车键时,如何阻止它再次被点击

在HTML5画布上下文中使用putImageData时,重载解析失败

为什么我的Navbar.css没有显示在本地主机页面上?