JavaScript call和apply的用法

时间:2023-03-08 20:34:16
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>