让我们定义一只狗:
function Dog() {}
现在让我们定义一个将 Dog 作为参数传递的自执行函数:
(function(dogClassName) {
var someServerSideLogicResolvesClassName = "dogClassName";
//Iniate class name from the server side string
})(Dog);
经过一些谷歌搜索后,我发现我应该使用
new window["dogClassName"]();
或者
new this["dogClassName"]();
但由于它是一个作用域变量,它不存在于全局名称空间(无窗口)中,并且this
是undefined
; 我不知道如何在不使用某种评估的情况下实现这一目标。