2010七月28
付出总有回报
这几天晚上回到家里没闲着,在网上找了本书,终于弄明白自己一直半懂且不懂装懂的一件事情。
那就是闭包与作用域的事情,想想前两天写的日志,虽然当时自己用另外一种方式处理了。即借用于中间函数,不过始终是脱离了自己原来预想的闭包实现法。既然偶有所感,不如改写一下。
改写后,代码如下,果然精悍了很多。
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?都在世上飘,难免会挨刀。
文章作者:simaopig
本文地址:http://www.xiaoxiaozi.com/2010/07/28/1834/
版权所有 © 转载时必须以链接形式注明作者和原始出处!
@wclssdn
呵,是的,在没有被更改的时候,你就调用了。所以是0。
[回复]
var payTypes = ['snda', 'junnet', 'szx'];
for (var i = 0, len = payTypes.length; i < len; i++) {
var Radios = document.getElementsByName(payTypeName + "_amount");
for (var j = 0, rLen = Radios.length; j < rLen; j++) {
Radios[j].onclick = function(payTypeName){
return function(){
payObj.changePaytype('pay_' + payTypeName, this.value);
}
}(payTypes[i])
}
}
这样更好看一点嘛
[回复]