普通函數中是否也有this關鍵字,this指向誰呢?javascript
<script type="text/javascript"> function myfun(){ console.log(this); } myfun(); </script>
控制函數內部的this指向:css
函數均可以打點調用call()和apply()方法,能夠幫咱們制定函數內部的this指向,在函數調用過程使用這兩個方法。html
var oDiv = document.getElementsByTagName('div'); function fun(){ console.log(this); } //fun.call(oDiv); fun.apply(oDiv);
做用:java
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);*/app
/*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...])