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

时间:2015-08-09 11:39:39

标签: javascript object methods instantiation

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

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

JavaScript中是否有类似的语法?

4 个答案:

答案 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

DEMO

答案 3 :(得分:0)

您应该在控制台中尝试过它,因为答案只是

(new Foo()).bar();

但javascript甚至更好,因为你甚至不需要大括号:

new Foo().bar();