this指向谁,就调用谁
全局中指向window
构造函数中,this指向new出来的实例
箭头函数不会改变this指向
函数中 this指向最后调用的,函数在声明的时候是没有this指向的,只有在调用的时候才会有 this指向并且谁最后调用指向谁
原生dom点击事件内的this指向 点击的元素
<script>
// console.log(this)
// function People(name){
// this.name = name
// console.log(this)
// }
// let p = new People('刘明')
// console.log(p)
// function fn1(){
// console.log(1)
// console.log(this)
// }
// fn1()
// let obj = {
// name: '2111B',
// age: 9
// }
// fn1()
// obj.f = fn1
// obj.f()
// let obj = {
// name: '2111B',
// age: 9
// }
// function fn1(a,b,c){
// console.log(this,a,b,c)
// }
// // fn1() //window
// fn1.call(obj,1,2,3)
// fn1.apply(obj,[1,2,3])
// fn1.bind(obj)(1,2,3)
// document.querySelector('button').onclick = function(){
// console.log(this)
// }
// document.querySelector('button').addEventListener('click',function(){
// console.log(this)
// })
// document.querySelector('button').addEventListener('click', () => {
// console.log(this)
// })
</script>
强制性改变this指向
call bind apply
区别:
.call(this的指向,参数1,参数2.....)
.apply(this指向,[参数1,参数2.....])
.bind(this指向)(参数1,参数2......)