2015-10-20 106 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);