通过字符串创建javascript对象
我想通过预先定义的名称访问usercontrol,就像DevExpress组件一样。大概是这样的:通过字符串创建javascript对象,javascript,jquery,asp.net,devexpress,Javascript,Jquery,Asp.net,Devexpress,我想通过预先定义的名称访问usercontrol,就像DevExpress组件一样。大概是这样的: "<dx:MyUserControl runat="server" ID="My" ClientInstanceName="MyClient"></>" 在我的usercontrol页面中,将有一个实现此方法的对象: function myClass{ DoSomething : function(){ var a = 2 + 2;} } 所以,通常我会像这样声
"<dx:MyUserControl runat="server" ID="My" ClientInstanceName="MyClient"></>"
在我的usercontrol页面中,将有一个实现此方法的对象:
function myClass{
DoSomething : function(){ var a = 2 + 2;}
}
所以,通常我会像这样声明对象:
var MyClient=new myClass()
但是现在我的客户端是动态的,ClientInstanceName
可以是任何
那我该怎么做呢
也许是JSON或eval?你的问题有点双重含义,所以让我来给出我找到的两种含义的答案 您有一个名为
MyClient
的变量和一个名为myClass
的类
现在,即使我们假设这里的两个名称都是动态的,并且您将两个名称都存储在变量A
和B
中,这样
如果B
等于“foobar”
,那么您可以确定页面上有一个类,如
function foobar() { ... }
如果A
等于“myFoobar”
,你就知道你实际上必须做类似的事情
var myFoobar = new foobar();
现在,由于变量和类都是全局作用域,因此您可以轻松地执行以下操作
window[A] = new window[B]();
就这样 这是否意味着,在我的usercontrol页面中,我还可以声明如下内容:var myObject=new myClass();窗口['']=myObject;不确定页面的JS是什么样的,但是如果该类是一个全局类(不在任何函数中),那么您可以这样做。似乎不是有效的JS,有人在预处理它吗?如果是,并且某人只是用字符串替换
,则是。是,这是我在usercontrol声明中设置的服务器属性(字符串)。
window[A] = new window[B]();