如何使用Javascript扩展对象';在声明中使用变量的原型?

如何使用Javascript扩展对象';在声明中使用变量的原型?,javascript,Javascript,我尝试过搜索,但可能我描述的不正确,因为我没有找到任何幸运的结果 我想这样做: XS.prototype.Abc=function $Def(a,c){ ... } 但是我希望XS、ABC和$Def成为变量(动态) 对于XS由于这是在全局范围内,我认为我可以像这样使用window[]: var myindex = 'XS'; window[myindex].prototype.Abc=function $Def(a,c){ ... } 我仔细阅读了一遍,但仍然无法确定是否可以使用调用

我尝试过搜索,但可能我描述的不正确,因为我没有找到任何幸运的结果

我想这样做:

    XS.prototype.Abc=function $Def(a,c){ ... }
但是我希望
XS
ABC
$Def
成为变量(动态)

对于
XS
由于这是在全局范围内,我认为我可以像这样使用
window[]

var myindex = 'XS';
window[myindex].prototype.Abc=function $Def(a,c){ ... }

我仔细阅读了一遍,但仍然无法确定是否可以使用
调用
应用
将其他两个作为变量来执行。

您可以在任何对象上使用
[]
符号:

window[ctorName].prototype[methodName] = function() { };

但是,顺便说一句,没有一种非邪恶的方法可以动态设置函数名。

好吧,
Abc
很容易:
.prototype[Abc]
。有关更多信息,请参阅。关于
$Def
,这是不可能的(函数表达式的名称只能从函数中访问,因此您甚至不必命名函数)
.call
.apply
与此无关。