js 改变this指针指向

JavaScript026

js 改变this指针指向,第1张

1.new操作符

new会创造一个对象实例,这个实例继承了new操作符右边的对象,因此在调用方法时,this会指向对象实例

2.call/apply/bind

call和apply主要用于指定this的环境变量,第一个参数是什么,this就指向什么,如果是null,则指向window

bind是延迟的,会返回一个修改后的函数,可以自行决定执行的时间

把这句改成下面那样document.all.d1.style.cursor="move"

document.getElementById('d1').style.cursor='move'

实际上this本身就不固定, 何谈会改变呢?  this是动态绑定的, 根据函数调用时的位置动态绑定this上下文的。

要谈变化的话大概有以下几种几种情况。

函数被new构造;

函数在对象里被引用;

函数被另一个变量引用;

函数被DOM对象调用;

函数被call、apply、bind强制绑定;

被setTimeout和setInterval调用;