Person.fn()//this指向了Person对象 .前面是谁this就指向睡
[](()2.在全局使用this(单独使用)
在全局使用的时候this表示全局对象win **《大厂前端面试题解析+Web核心总结学习笔记+企业项目实战源码+最新高清讲解视频》无偿开源 徽信搜索公众号【编程进阶路】** dow
[](()3.函数中的this
在函数中,this表示全局对象window
[](()4.函数严格模式下
在函数中,在严格模式下,this 是未定义的(undefined)
[](()5.事件中的this
在事件中,this 表示接收事件的元素
事件中的this
点击后按钮消失,打印this
[](()6.构造函数中的this
构造函数中的this指向当前实例
function Person(){
this.name=‘Jack’
}
Person.prototype={
fn(){
console.log(this)
}
}
let p1=new Person()
console.log(p1) //Person {name: “Jack”}
console.log(p1.name) //Jack
p1.fn() //Person {name: “Jack”}
[](()7.箭头函数没有this
函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象
箭头函数本身没有自己的this, 绑定定义时所在的作用域,而不是指向运行时所在的作用域。所以其内部的this指向定义该箭头函数时,外层代码块的this,即箭头函数的this指向固定化
[](()call()、apply()、bind() 的用法
====================================================================================
call 、bind 、 apply
这三个函数的作用是改变this指向
-
用在函数后面 例如
fn().call()
或者obj.fn().call()
,参数可以是各种类型 -
call(this指向对象,参数,...,参数)