2012-04-12 60 views
2

Possible Duplicate:
Use of .apply() with 'new' operator. Is this possible?創建新類實例和應用參數作爲陣列

我需要創建一個類(new SomeClass())的一個新的insance,但我需要的參數傳遞是一個數組。我知道我可以調用函數與apply()和參數傳遞數組作爲第二個參數apply,但我怎麼能做到這一點創建一個新的實例時?

+0

@JamesMontagne我不能讓這個例子工作,雖然。我得到這個錯誤:類型錯誤:Function.prototype.apply的:參數列表中有錯誤類型 – LordZardeck 2012-04-12 18:54:53

+0

@LordZardeck:你能告訴我們你想要的代碼。你確定你正在傳遞一個數組嗎? – 2012-04-12 19:10:43

回答

0
function ​myClass​() 
{ 
    if(this instanceof arguments.callee) 
    { 
     init.apply(this, arguments); 
    } 
    function init() 
    { 
     this.args=arguments; 
     console.log(arguments); 
    } 
} 

var myArray=[1,2,3]; 
var obj=new myClass(myArray); 
console.log(obj.args); 

Example here.希望我明白你需要什麼,這可以幫助你。

+0

我不控制構造函數。 – LordZardeck 2012-04-12 19:08:48

+0

你沒有定義類/函數? – 2012-04-12 19:12:22

+0

我沒有。它是外部代碼 – LordZardeck 2012-04-12 19:37:38

相關問題