首页 > 其他 > 详细

分布函数

时间:2016-08-21 12:20:14      阅读:121      评论:0      收藏:0      [点我收藏+]
<!DOCTYPE html>
<html>

<head>
    <title>分布函数</title>
    <script type="text/javascript">
    Function.prototype.partial = function() {
        var fn = this,//存储当前方法。即setTimeout
            args = Array.prototype.slice.call(arguments);//用传入的实参使用call方法调用Array对象原型上的slice方法对传入转换为数组

        //这里采用了闭包的方法,闭包内保存了fn 和args值。
        return function() {//在调用函数原型链上的partial方法时返回这个匿名方法
            var arg = 0;//定义并赋值为0,
            for (var i = 0; i < args.length && arg < arguments.length; i++) {//循环调用partial方法时传入的参入
                if (args[i] === undefined) {//如果又一个参数为undefined
                    args[i] = arguments[arg++];//将我们调用setTimeout时的参数进行替换
                }
            }
            return fn.apply(this, args);//this(即window)对象使用applay方法调用之前存储的方法,并传入参数数组args。
        }

    }

    window.onload = function() {
        var delay = setTimeout.partial(undefined, 1000);
        delay(function() {
            alert(‘a‘);
        })
    }
    </script>
</head>

<body>
</body>

</html>

 

分布函数

原文:http://www.cnblogs.com/superZz/p/5792390.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!