这几天晚上回到家里没闲着,在网上找了本书,终于弄明白自己一直半懂且不懂装懂的一件事情。
那就是闭包与作用域的事情,想想前两天写的日志,虽然当时自己用另外一种方式处理了。即借用于中间函数,不过始终是脱离了自己原来预想的闭包实现法。既然偶有所感,不如改写一下。
改写后,代码如下,果然精悍了很多。
var payTypes = ['snda', 'junnet', 'szx'];
for (var i = 0, len = payTypes.length; i < len; i++) {
(function(payTypeName){
var Radios = document.getElementsByName(payTypeName + "_amount");
for (var j = 0, rLen = Radios.length; j < rLen; j++) {
Radios[j].onclick = function(){
payObj.changePaytype('pay_' + payTypeName, this.value);
}
}
})(payTypes[i]);
}
for (var i = 0, len = payTypes.length; i < len; i++) {
(function(payTypeName){
var Radios = document.getElementsByName(payTypeName + "_amount");
for (var j = 0, rLen = Radios.length; j < rLen; j++) {
Radios[j].onclick = function(){
payObj.changePaytype('pay_' + payTypeName, this.value);
}
}
})(payTypes[i]);
}
所以说,天道酬勤,付出总是会有回报的。能否写出这个代码并不重要,背下来也可。但是弄明白其真正原理,这才是我最大的收获。
有点装B了,但是人在世上混,哪能不流氓,哪能不装B?都在世上飘,难免会挨刀。