我想知道以下代码是否有任何区别,只要我不需要在对象上调用任何方法.我只是想实例化它.
var router = new Router();
Run Code Online (Sandbox Code Playgroud)
VS
new Router();
Run Code Online (Sandbox Code Playgroud)
是否允许在构造函数上调用'new'关键字而不将其分配给变量?
该对象将被实例化,其构造函数中的任何代码都将被执行,是的.之后,对象将被垃圾收集,因为没有任何引用指向它(禁止在构造函数中使用闭包).
所以,是的,这样做完全没问题.然而,它有点怪异.如果你只想运行代码,那么你宁愿使用一个函数.在你的案例中使用一个对象几乎没有意义.
或者,如果您的构造函数已经"足够"并且您不需要在对象上调用其他方法,那么您的构造函数可能做得太多了!考虑重构类并将实例化和开始工作分成两个单独的方法.