依赖注入的代码简单实现, 函数可以根据自己需要的参数调用参数。
这个仅仅是一种实现方式。
- ja本质上实现就是,
1.让函数转化成字符串
2.根据正则把函数的参数提取出来。
3.然后用调用参数给函数自己用。
var scope = {
a: 12,
b: 20,
c: 50,
d: 60
};
//函数写什么参数, 就可以从scope里面得到此参数,并不是调用者决定的。
function show(a, b, c) {
console.log(arguments.length);
console.log(a, b, c);
}
var str = show.toString(); //方法转成字符串
str = str.split('{')[0].match(/\(.*\)/)[0].replace(/\s+/g, ''); //用分割和正则获取 参数字符串,剔除里面的空格
str = str.substring(1, str.length - 1); // 把括号去掉
var arr = str.split(','); //参数装进 数组里
//找出相应的参数
var args = [];
for (var i = 0; i < arr.length; i++) {
args[i] = scope[arr[i]];
}
//传参,调用函数。
show.apply(null, args);
个人博客: www.liangtongzhuo.com
网友评论