this指向问题

1.函数调用模式:fn() 这里的this指向window

2.方法调用模式:obj.fn( ) this指向调用者,谁调用,就指向谁

3.构造函数调用模式:new Person()this指向新创建的实例

4.上下文调用模式:call()-----任何函数都可以看成一个特殊的对象,也可以设置属性和方法,都有一个call方法

              call方法也可以用于调用函数,还可以指定函数执行的this指向

              语法:fn.call(this指向,x,y,z) 

           apply()---每个函数都有一个apply方法,apply也可以用于调用函数,还可以指定函数执行的this指向

              语法:fn.apply(this指向,[ x, y, z ] )

         bind()----任何函数都有一个bind方法,作用:复制一个新函数,并且将新函数的this固定死指向传入的this的值

              语法:var newFn=fn.bind(this指向)==》只是改变了新函数newFn的指向,fn的并没有改变

5.定时器中的this指向window

6.事件处理函数中,浏览器让this指向了事件源

               

posted @ 2019-05-24 00:18  柚稚人儿  阅读(118)  评论(0编辑  收藏  举报