基于Cerbrus here的解决方案;
是否可以将参数作为自定义属性的一部分传递?所以像;
<div data-myattr="hello(foo)"></div>
为什么?
我的意思是,是的,如果你想对括号内的内容进行正则表达式匹配,用逗号分隔,然后注入它们。但这很疯狂。
为什么不创建第二个数据属性?
<div data-command="myFunction" data-params="one,two,three"></div>
然后抓住一切,如:
var command = document.querySelector("[data-command]"),
vars = command.dataset.params.split(","),
funcName = command.dataset.command;
window[funcName](vars[0], vars[1], vars[2]);
或者:
window[funcName].apply(undefined, vars);