首页 > JavaScript > 付出总有回报
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]);
}

所以说,天道酬勤,付出总是会有回报的。能否写出这个代码并不重要,背下来也可。但是弄明白其真正原理,这才是我最大的收获。

有点装B了,但是人在世上混,哪能不流氓,哪能不装B?都在世上飘,难免会挨刀。

文章作者:simaopig
本文地址:http://www.xiaoxiaozi.com/2010/07/28/1834/
版权所有 © 转载时必须以链接形式注明作者和原始出处!

22 Responses to “付出总有回报”

  1. #1 simaopig 回复 | 引用 Post:2010-09-07 13:34

    @wclssdn
    呵,是的,在没有被更改的时候,你就调用了。所以是0。

    [回复]

  2. #2 fire8119 回复 | 引用 Post:2011-10-14 14:09

    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])
    }
    }

    这样更好看一点嘛

    [回复]

评论分页

发表评论

:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)