我想实例化一个简单的JavaScript对象,并立即调用它的方法。可以简单地做到这一点,就像在PHP中一样:
(new Class('attr', 'attr2'))->myMethod();
JavaScript中是否有类似的语法?
答案 0 :(得分:3)
同样的方式,但使用点符号(标准javascript):
(new MyObject(1)).toString()
答案 1 :(得分:0)
简单地说,
(new ClassName()).methodName();
你甚至可以链接方法如果你从this
methodName()
(new ClassName()).methodName().secondMethod();
var date = new Date();
alert('With later invocation '+date.toDateString())
alert('With immediate invocation '+(new Date()).toDateString())

答案 2 :(得分:0)
您可以但必须将该新对象的实例分配给变量。您无法拨打(new MyObject(1)).myMethod()
。
从我的演示:
(new myMethod('bob','tony')).log();
会产生错误:
undefined undefined _display:28:3
TypeError :(中间值)(...)未定义
但这会产生正确的结果:
var a = (new myMethod('bob','tony')).log(); // bob tony
答案 3 :(得分:0)
您应该在控制台中尝试过它,因为答案只是是:
(new Foo()).bar();
但javascript甚至更好,因为你甚至不需要大括号:
new Foo().bar();