如何使用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
与此无关。