5月的最后一天,想想又有好久没有更过博客啦~
前段时间在准备软考,不管结果怎样,也是结束了。也算是自己对大学知识的一个总结吧~
自打25号考完试,做了一个小游戏“小鸟游戏”,做的过程中我发现了一个很重要的知识点——this的指向
经过查资料看视频,总结如下:
- 元素绑定事件,方法中的this是当前操作的元素
- 看方法名前有点。有点,点前边是谁this就是谁;没有点,this指window(严格模式下是undefined)
- 构造函数执行,方法体中的this是当前类的一个实例
- 箭头函数中指向外层作用域的 this
全局作用域或者普通函数中 this 指向全局对象 window - this永远指向的是最后调用它的对象,也就是看它执行的时候是谁调用的
看下边俩道例题来理解:
<!DOCTYPE html>
<html >
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>this的指向</title>
<script>
var fullName='language';
var obj={
fullName:'javascript',
prop:{
getFullName:function(){
return this.fullName;
}
}
};
console.log(obj.prop.getFullName());
//有点,this:obj.prop => obj.prop.fullName => undefined
var test=obj.prop.getFullName;
console.log(test());
// 没有点,this:window => this.fullName => window.fullName => language
</script>
</head>
<body>
</body>
</html>
<!DOCTYPE html>
<html >
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>this练习题</title>
<script>
var name='window';
var Tom={
name:'Tom',
show:function(){
console.log(this.name);//=>window.name=>window
},
wait:function(){
var fun=this.show;//=> Tom.show
fun();//没有点,this指window
}
};
Tom.wait();
// 有点,this指Tom
</script>
</head>
<body>
</body>
</html>