javascript 未捕获的类型错误:“SinkShip”不是window.onload中的函数

9rygscc1  于 2023-04-10  发布在  Java
关注(0)|答案(2)|浏览(168)

我是JS新手,我不明白为什么这段代码不起作用?
我想在每次加载或刷新页面时调用一个类。
为了测试这一点,我向构造函数添加了initialises方法。
我得到了这个错误,我不明白为什么:

script.js:16 Uncaught TypeError: SinkShip is not a function
    at window.onload

这是我的.js代码。

class SinkShip{

    constructor(){
        this.initialies
    }

    initialies(){
        alert('it works');
    }

}

window.onload = (event)=>{
    console.log('HIIIII');
    let SinkShip;
    SinkShip = new SinkShip();
};
xurqigkl

xurqigkl1#

在函数的局部作用域中,SinkShip指的是局部变量而不是类。为了解决这个问题,请为变量使用不同的名称,即小写的sinkShip

class SinkShip {

  constructor() {
    this.initialies();
  }

  initialies() {
    alert('it works');
  }

}

window.onload = (event) => {
  console.log('HIIIII');
  let sinkShip = new SinkShip();
};
q5iwbnjs

q5iwbnjs2#

你正在用你的变量SinkShip“覆盖”你的类SinkShip。
let SinkShip替换为let sinkShip

class SinkShip {
  constructor() {
    this.initialies();
  }

  initialies() {
    alert("it works");
  }
}

window.onload = (event) => {
  console.log("HIIIII");
  let sinkShip;
  sinkShip = new SinkShip();
};

相关问题