我希望能夠做這樣的事情:使用字符串值作爲函數的名稱被稱爲
var MyObject = function(prop) {
this.property = prop;
};
var stringVar = 'MyObject';
var myObject = new stringVar(1); // This doesn't work.
assertTrue(myObject.property === 1);
我知道,這將工作:
var myObject = new window[stringVar](1);
,但我想知道是否有一種更加情境化的方式來完成它。
作爲一個方面說明:我顯然試圖避免使用eval()
。
我相信你有什麼,是做它的一種可接受的方式。 「環境中性」是什麼意思? –
你是什麼意思與上下文中性?你總是需要至少對函數的位置,窗口對象或其他位置有所瞭解。 – bigblind
對不起:環境中立。可以在除瀏覽器以外的環境下工作的代碼。 –