2015-10-20 88 views
0

我目前正在用Javascript编写代码并调用返回构造函数的函数,我想立即创建这样的对象。但我不工作。因为我想要将这段代码放在一行中,而不必让另一个var启动它。 在此先感谢。函数返回构造函数并直接调用

this.vendor = new Lib.vendorAPI.retreiveVendor(this.vendorConst)(this); 

这样它的工作方式,但它不内联。

var currentVendor = new Lib.vendorAPI.retreiveVendor(this.vendorConst)(this); 
this.vendor = new currentVendor(this); 

在此先感谢。

+1

*“因为我想要这个代码在一行”* - 牺牲想要的可读性?嗯... – Joseph

+0

在这种情况下,它更清洁地写入它的内联,否则你将变量currentVendor和this.vendor。 但是当你说可读性更难时,我和你在一起。那是真实的。 – Zezura

回答

0

什么

var currentVendor = new new Lib.vendorAPI.retreiveVendor(this.vendorConst)(this); 
1

找到自己的答案: 围绕功能附加括号会告诉它首先需要执行的功能,然后从返回的构造函数创建实例的浏览器。 是这样的:

this.vendor = new (Lib.vendorAPI.retreiveVendor(this.vendorConst))(this);