不能在函数中使用传递对象的方法
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瞄准镜又来了。
我试过的
我有一个恒温器程序,由于它是通过测试驱动开发制作的,因此运行良好。然后我在我的索引区域写了一些代码,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瞄准镜又来了。