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>
相關文章
相關標籤/搜索