我想通过预定义名称访问用户控件,就像 DevExpress 组件一样。像这样的事情:
"<dx:MyUserControl runat="server" ID="My" ClientInstanceName="MyClient"></>"
在我的主页中,我想访问我的用户控件的客户端方法。 像这样的东西:
MyClient.DoSomething();
在我的用户控件页面中会有一个实现此方法的对象:
function myClass{
DoSomething : function(){ var a = 2 + 2;}
}
所以,通常我会声明该对象,如下所示: var MyClient = new myClass();
但现在 MyClient 是动态的,ClientInstanceName
可以是任何内容......
那么我该怎么做呢?
也许是 JSON 或 eval?
最佳答案
你的问题有点双重含义,所以让我发布我发现的两种含义的答案。
您有一个名为 MyClient
的变量和一个名为 myClass
的类。
现在,即使我们假设这里的两个名称都是动态的,并且您获取并将这两个名称存储在变量 A
和 B
中,这样
如果 B
等于 "foobar"
,那么你确定页面上有一个类似
function foobar() { ... }
如果A
等于“myFoobar”
,你就知道你必须实际做一些事情
var myFoobar = new foobar();
现在,由于变量和类都是全局范围的,您可以轻松地做到
window[A] = new window[B]();
就是这样!
关于javascript - 通过字符串创建一个javascript对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25730784/