JS中this指向性问题

173 阅读1分钟

this指向问题(8种情况)

this指向全局

this==window

构造函数中

1.使用new出来的对象,this指向new出来的对象
2.如果当做普通函数,则this指向window

对象方法中

1.在对象方法中,this指向该对象
2.如果有变量直接指向这个方法,则this指向window
3.如果该对象方法中有指向函数,则this指向window

原型定义方法中

通过构造函数原型对象prototype添加的函数内部的this指向实例对象
也可以这么理解,原型定义方法中的this指向实例对象

call、apply、bind

指向obj
call(obj,str1,str2)
apply(obj,[str1,str2])
bind(obj,str1,str2)返回的是一个函数

操作dom

this指向该节点的dom对象

箭头函数

1.箭头函数没有this
2.this指向箭头函数的上一层作用域的this

绑定方式

1.隐士绑定
    谁调用方法,this指向谁
2.显示绑定
    call、apply、bind
3.new绑定

4.优先级:
    new绑定>显示绑定>隐士绑定
    
    
    
    

更多详情....