Javascript jQuery:使用基于变量值的动态对象
我有几个对象,所有这些对象都有一些方法,它们被称为相同的方法,但做不同的事情 单击按钮时,我想调用Javascript jQuery:使用基于变量值的动态对象,javascript,jquery,Javascript,Jquery,我有几个对象,所有这些对象都有一些方法,它们被称为相同的方法,但做不同的事情 单击按钮时,我想调用init()方法,但是 对象根据我单击的按钮的不同而不同 这里是一个片段 $btn.on('click', function(e){ e.preventDefault(); var $trigger = $(this); var objectName = $trigger.data('object'); /* if objectName is 'user
init()
方法,但是
对象根据我单击的按钮的不同而不同
这里是一个片段
$btn.on('click', function(e){
e.preventDefault();
var $trigger = $(this);
var objectName = $trigger.data('object');
/*
if objectName is 'user', I want to call user.init(),
if it's 'product' I want to call product.init() and so on...
right now i get an error if I call like his
*/
objectName.init($trigger);
});
可以这样动态调用对象吗?我知道这是因为它的属性和方法,但我找不到关于这个问题的任何东西
谢谢。最好做地图绘制
var entities = {
user: user,
entity: entity
}
var objectName = $trigger.data('object');
entities[objectName].init($trigger);
最好是做映射
var entities = {
user: user,
entity: entity
}
var objectName = $trigger.data('object');
entities[objectName].init($trigger);
如果在全局范围中定义了对象(或函数),则可以使用窗口
对象访问它们:
var funcT=function(){
log('调用了funcT');
}
var objT={
"a":1,,
b:2
}
函数a(){
var funcName='funcT'
窗口[名称]();
var objName='objT'
log(窗口[objName]);
}
a()
如果在全局范围中定义了对象(或函数),则可以使用窗口
对象访问它们:
var funcT=function(){
log('调用了funcT');
}
var objT={
"a":1,,
b:2
}
函数a(){
var funcName='funcT'
窗口[名称]();
var objName='objT'
log(窗口[objName]);
}
a()
使用窗口[变量]
可以基于另一个变量访问变量
因此,您所需要做的就是替换
objectName.init($tr)伊格尔)代码>与:窗口[objectName]。init()代码>使用窗口[变量]
可以基于另一个变量访问变量
因此,您所需要做的就是替换objectName.init($tr)伊格尔)代码>与:窗口[objectName]。init()代码>var objectName=JSON.parse($trigger.data('object'))代码>var objectName=JSON.parse($trigger.data('object')代码>谢谢,这似乎是最干净的解决方案。谢谢,这似乎是最干净的解决方案。它们不是全局性的,所以我将坚持Maxx的回答。但无论如何,谢谢你,它们不是全球性的,所以我将坚持Maxx的回答。不过还是谢谢你