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调用;