Node.js类内函数触发后console.log重复执行两次问题咨询
解决你的Node.js类方法重复执行问题
嘿,我一眼就看出问题啦!你看这段代码里的两个触发点:
- 当你创建
Client类的实例var RR = new Client;时,类的constructor构造函数会自动运行,而你在构造函数里已经调用了this.test(),这就第一次打印出了"testing"。 - 紧接着你又手动调用了
RR.test(),这就触发了第二次调用,所以控制台才会输出两次内容。
给你两个修改方案,选一个适合你的需求就行:
方案一:移除构造函数里的自动调用
如果你只需要手动触发test方法,就把构造函数里的this.test()删掉:
class Client{ constructor(){ // 移除构造函数内的test调用 } test(){ console.log("testing"); } } var RR = new Client; RR.test();
这样运行后只会打印一次"testing"。
方案二:移除手动调用的RR.test()
如果你希望创建实例时就自动执行test方法,那就去掉后面手动调用的部分:
class Client{ constructor(){ this.test(); } test(){ console.log("testing"); } } var RR = new Client; // 移除手动调用的RR.test()
这样创建实例时就会自动打印一次内容,不会重复。
内容的提问来源于stack exchange,提问作者PepB
相关产品推荐
相关产品推荐

