我有一个脚本,可以从 div 在页面上创建拖放上传器。我的 DIV 看起来像
<div class="well uploader"
data-type="image"
data-callback="product.addimage"
data-multi="1"></div>
然后我会有一个类似的功能
var product = new function(){
/* Some random stuff */
this.addimage = function(image){
alert('W00T! I HAZ AN IMAGE!');
}
/* More random stuff */
}
上传完成后,我需要调用data-callback
(本例中为product.addimage)中的函数。我知道您可以使用全局函数,window[callback]()
但我不确定使用对象下的函数执行此操作的最佳方法。
我的第一个想法是做类似*
var obj = window;
var parts = callback.split('.');
for(part in parts){
obj = obj[parts[part]];
}
obj();
但这似乎有点脏,有没有更好的方法不使用 eval 因为 eval 是邪恶的?
我还没有测试过,所以我不知道它是否会起作用