码迷,mamicode.com
首页 > 其他好文 > 详细

分布函数

时间:2016-08-21 12:20:49      阅读:124      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!