不能在函数中使用传递对象的方法

Can't use method of passed object in function

我试过的

我有一个恒温器程序,由于它是通过测试驱动开发制作的,因此运行良好。然后我在我的索引区域写了一些代码,link 我的元素和恒温器程序的按钮,它们都有效。

产生问题的原因

当我现在想把它放在另一个 js 文件中时,问题就出现了,Linker.js。如果从 Linker.js

中删除 thermo.up(1),您看到的代码可以正常工作

Linker.js

function returnTemp(thermo) {
    thermo.up(1)
    console.log(thermo.temp)
}

Thermostat.js

static up(num) {
        this._tempChange(num);
        console.log(this.temp);
    };

Index.js

<!-- JS -->
<script src="src/Thermostat.js"></script>
<script src="src/Linker.js"></script>
<script>
    var stat = new Thermostat
</script>

控制台

returnTemp(stat)
Uncaught TypeError: thermo.up is not a function
    at returnTemp (Linker.js:59)
    at <anonymous>:1:1
(edited)

Taplar 描述的就是我修复它的方法。

我的 class 恒温器有 class 方法,而不是实例方法。为我的方法删除静态关键字解决了我的问题。

Javascript瞄准镜又来了。