JavaScript call和apply的用法

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
</head>
<body>
    <div id="div1">div1</div>
    <div id="div2"></div>
    <script type="text/javascript">
        function add() {
            var a = arguments;
            var count = 0;
            for (var i = 0, len = a.length; i < len ; i++) {
                count += a[i];
            }
            this.innerHTML = count;//注意this的含义
        };
        add(1, 2, 3);//此时this=window;
        //this代表div1对象
        //解释add在运行的时候,并且add函数里面的this关键字指向call的第一个参数,从第二个参数起,都是传给add这个方法;
        add.call(document.getElementById('div1'),1,2,3);
        //apply 只有两个参数,第二个是个集合,是arguments形式的。
        add.apply(document.getElementById('div1'),[1,2,3]);
    </script>
</body>
</html>

  

posted @ 2015-07-27 22:02  ICupid  阅读(171)  评论(0编辑  收藏  举报