我希望能够做这样的事情:使用字符串值作为函数的名称被称为
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
对不起:环境中立。可以在除浏览器以外的环境下工作的代码。 –