立即实例化 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
您应该在控制台中尝试过,因为答案很简单是:
(new Foo()).bar();
但 javascript 更好,因为您甚至不需要牙套:
new Foo().bar();
我想实例化一个简单的 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
您应该在控制台中尝试过,因为答案很简单是:
(new Foo()).bar();
但 javascript 更好,因为您甚至不需要牙套:
new Foo().bar();