早上发现M2前辈的一个list方法挺有意思。。。^^

<script type="text/javascript">
<!-- M2
Array.prototype.list=function(){
    var _f = arguments[arguments.length-1];
    if (_f instanceof Function) {
        for(var _i = 0, _l = Math.min(this.length,arguments.length - 1) ; _i < _l ; _i ++)
            _f(arguments[_i] + '="' + this[_i].replace('"','\\"') + '"');
    }
}

function test(){
    var o = {}, a, b, c, d;
    'what are you doing'.split(' ').list('o.a','o.b','o.c','o.d', function(_) { return eval(_); });
    alert([o.a, o.b, o.c, o.d].join('\n'));
}
test();
//-->
</script>

于是忽,修改了下。。。

<script type="text/javascript">
<!--
Array.prototype.list = function (s, f) {
    if (!(f && f.constructor === Function)) return this;
    for(var _i = 0, _a = s.split(','), _m = _a.length, _l = Math.min(this.length, _m) ; _i < _l ; _i ++)
        f(_a[_i] + ' = arguments[1]', this[_i]);
    return this;
};

!function () {
    var f = function(_) { return eval(_); }, a, b, c, d, e;
   
    'what are you doing'.split(/\s/).list('a,b,c,d', f);
    [{ a : 'csdn' }].list('e', f);
   
    alert([a,b,c,d].join('\n'));
    alert(e.a);
}();
//-->
</script>

posted @ 2008-06-16 11:24  越兔  阅读(397)  评论(0编辑  收藏  举报