首页 > 代码库 > javascript 自动绑定JS callback 的方法函数
javascript 自动绑定JS callback 的方法函数
自己写的一个javascript 智能绑定callback 并且调用执行的函数,主要用于异步请求的 ajax中:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> <script> /** * @author default7@zbphp.com * @date 2014-10-17 * @description 通过传入的参数获取出函数名称 * @param args * @returns {string} */ function getFunctionName(args) { var fName = ''; if (typeof args == 'string' && /^[a-zA-Z0-9]+$/.test(args)) { fName = args; } else { var fBody = ''; if (typeof args == 'object' && args.callee) { fBody = args.callee.toString(); } else if (typeof args == 'string') { fBody = args; } if (fBody) { var m = fBody.match(/function\s+([a-zA-Z0-9]+)\s*\(/i); if (m && m[1]) { fName = m[1]; } } } return fName; } var gCallback = []; function addCallback(fName, callback) { if (typeof fName == 'string' && typeof window[fName] == 'function' && typeof callback == 'function') { if (typeof gCallback[fName] == 'undefined') { gCallback[fName] = []; } gCallback[fName].push(callback); } } /** * @description 执行绑定的函数 * @param args */ function execCallback(args) { var fName = getFunctionName(args); if (fName && window[fName] && gCallback[fName]) { for (var i in gCallback[fName]) { gCallback[fName][i](); } gCallback[fName] = [];//只调用一次 } } </script> <script> function a() { alert('a'); } function b() { alert('b'); } function c() { alert('c'); } function d() { alert('d'); } function initUser() { execCallback(arguments); } addCallback('initUser', a); addCallback('initUser', b); addCallback('initUser', c); initUser(); addCallback('initUser', d); initUser(); </script> </body> </html>
javascript 自动绑定JS callback 的方法函数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。