call和apply方法
Posted amandaj
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了call和apply方法相关的知识,希望对你有一定的参考价值。
普通函数中是否也有this关键字,this指向谁呢?
<script type="text/javascript"> function myfun(){ console.log(this); } myfun(); </script>
控制函数内部的this指向:
函数都可以打点调用call()和apply()方法,可以帮我们制定函数内部的this指向,在函数调用过程使用这两个方法。
var oDiv = document.getElementsByTagName(\'div\'); function fun(){ console.log(this); } //fun.call(oDiv); fun.apply(oDiv);
作用:
1、执行fun函数
2、在fun函数内部指定this的指向oDiv
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Document</title>
<style type="text/css">
div{
width: 200px;
height: 200px;
background: red;
}
</style>
</head>
<body>
<div></div>
</body>
</html>
<script type="text/javascript">
/*function fun(){
console.log(this);
}
fun();*/
var oDiv = document.getElementsByTagName(\'div\')[0];
/* function fun(){
console.log(this);
}
//fun.call(oDiv);
fun.apply(oDiv);*/
/*function sum(a,b){
this.style.backgroundColor = "pink";
}
sum.call(oDiv);
sum.apply(oDiv);*/
function sum(a,b){
this.style.backgroundColor = "pink";
console.log(a+b);
}
sum.call(oDiv,2,3);
sum.apply(oDiv,[3,5]);
</script>
call和apply 区别:
函数传递参数的语法不同。
sum.call(oDiv,参数1,参数2,参数3...);
sum.apply(oDiv,[参数1,参数2,参数3...])