Possible Duplicate:
Use of .apply() with 'new' operator. Is this possible?創建新類實例和應用參數作爲陣列
我需要創建一個類(new SomeClass()
)的一個新的insance,但我需要的參數傳遞是一個數組。我知道我可以調用函數與apply()
和參數傳遞數組作爲第二個參數apply
,但我怎麼能做到這一點創建一個新的實例時?
Possible Duplicate:
Use of .apply() with 'new' operator. Is this possible?創建新類實例和應用參數作爲陣列
我需要創建一個類(new SomeClass()
)的一個新的insance,但我需要的參數傳遞是一個數組。我知道我可以調用函數與apply()
和參數傳遞數組作爲第二個參數apply
,但我怎麼能做到這一點創建一個新的實例時?
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.希望我明白你需要什麼,這可以幫助你。
我不控制構造函數。 – LordZardeck 2012-04-12 19:08:48
你沒有定義類/函數? – 2012-04-12 19:12:22
我沒有。它是外部代碼 – LordZardeck 2012-04-12 19:37:38
@JamesMontagne我不能讓這個例子工作,雖然。我得到這個錯誤:類型錯誤:Function.prototype.apply的:參數列表中有錯誤類型 – LordZardeck 2012-04-12 18:54:53
@LordZardeck:你能告訴我們你想要的代碼。你確定你正在傳遞一個數組嗎? – 2012-04-12 19:10:43