Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过字符串创建javascript对象_Javascript_Jquery_Asp.net_Devexpress - Fatal编程技术网

通过字符串创建javascript对象

通过字符串创建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;} } 所以,通常我会像这样声

我想通过预先定义的名称访问usercontrol,就像DevExpress组件一样。大概是这样的:

"<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]();