立即实例化 JavaScript 个对象并调用方法

Instantiate JavaScript object and call method at once

我想实例化一个简单的 JavaScript 对象,并立即调用它的方法。可以简单地做到这一点,就像 PHP:

(new Class('attr', 'attr2'))->myMethod();

JavaScript中是否有类似的语法?

方法相同,但使用点符号(标准 javascript):

(new MyObject(1)).toString()

简单地说,

 (new ClassName()).methodName();

你甚至可以链接这些方法 如果你 return this 来自 methodName()

(new ClassName()).methodName().secondMethod();

var date = new Date();
alert('With later invocation '+date.toDateString())

alert('With immediate invocation '+(new Date()).toDateString())

您可以,但您必须将该新对象的实例分配给一个变量。你不能只调用 (new MyObject(1)).myMethod().

来自我的演示:

(new myMethod('bob','tony')).log();

会产生错误:

undefined undefined _display:28:3

TypeError: (intermediate value)(...) is undefined

但这会产生正确的结果:

var a = (new myMethod('bob','tony')).log(); // bob tony

DEMO

您应该在控制台中尝试过,因为答案很简单:

(new Foo()).bar();

但 javascript 更好,因为您甚至不需要牙套:

new Foo().bar();