依賴注入的代碼簡單實現(xiàn), 函數(shù)可以根據(jù)自己需要的參數(shù)調(diào)用參數(shù)。
這個僅僅是一種實現(xiàn)方式。
- ja本質(zhì)上實現(xiàn)就是,
1.讓函數(shù)轉(zhuǎn)化成字符串
2.根據(jù)正則把函數(shù)的參數(shù)提取出來。
3.然后用調(diào)用參數(shù)給函數(shù)自己用。
var scope = {
a: 12,
b: 20,
c: 50,
d: 60
};
//函數(shù)寫什么參數(shù), 就可以從scope里面得到此參數(shù),并不是調(diào)用者決定的。
function show(a, b, c) {
console.log(arguments.length);
console.log(a, b, c);
}
var str = show.toString(); //方法轉(zhuǎn)成字符串
str = str.split('{')[0].match(/\(.*\)/)[0].replace(/\s+/g, ''); //用分割和正則獲取 參數(shù)字符串,剔除里面的空格
str = str.substring(1, str.length - 1); // 把括號去掉
var arr = str.split(','); //參數(shù)裝進(jìn) 數(shù)組里
//找出相應(yīng)的參數(shù)
var args = [];
for (var i = 0; i < arr.length; i++) {
args[i] = scope[arr[i]];
}
//傳參,調(diào)用函數(shù)。
show.apply(null, args);
個人博客: www.liangtongzhuo.com