首页 > 代码库 > 依赖注入inject的一种方式
依赖注入inject的一种方式
<!DOCTYPE html><html><head> <title></title></head><body><script> var inject = { dependencies: {}, register: function (key, value) { this.dependencies[key] = value; }, resolve: function(func, scope) { if (Array.isArray(func)) { var last = func.length - 1; var deps = func.slice(0, last); func = func[last] } else { var FN_ARGS = /^function\s*[^\(]*\(\s*([^\)]*)\)/m; var STRIP_COMMENTS = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg; var fnText = func.toString().replace(STRIP_COMMENTS, ‘‘); var argDecl = fnText.match(FN_ARGS); var deps = argDecl[1].split(‘,‘); } var arr = []; for (var i = 0 ; i < deps.length ; i++) { if (this.dependencies.hasOwnProperty(deps[i])) { arr.push(this.dependencies[deps[i]]) } } return function(){ func.apply(scope || {}, arr); } }// resolve: function (deps, func, scope) {//// var FN_ARGS = /^function\s*[^\(]*\(\s*([^\)]*)\)/m;// var STRIP_COMMENTS = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg;// var fnText = func.toString().replace(STRIP_COMMENTS, ‘‘);// var argDecl = fnText.match(FN_ARGS);// var deps = argDecl[1].split(‘,‘);// deps = deps.map(function(str){// return str.replace(/\s+/gm,‘‘);// });// var arr = [];// for (var i = 0; i < deps.length; i++) {// if (this.dependencies.hasOwnProperty(deps[i])) {// arr.push(this.dependencies[deps[i]])// }// }// return function () {// func.apply(scope || {}, arr);// }//// }// resolve: function (deps, func, scope) {// var arr = [];// for (var i = 0; i < deps.length; i++) {// if (this.dependencies.hasOwnProperty(deps[i])) {// arr.push(this.dependencies[deps[i]])// }// }// return function () {// func.apply(scope || {}, arr);// }//// } } inject.register(‘$http‘, { ‘getName‘: function () { return (‘$http‘) } }); inject.register(‘$scope‘, { ‘getName‘: function () { return (‘$scope‘) } }); // function MyController($http, $scope) { // console.log($http.getName()); // } function MyController($scope, $http) { console.log($http.getName()); } MyController = inject.resolve([‘$http‘, ‘$scope‘, MyController]); MyController();</script></body></html>
依赖注入inject的一种方式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。