下面对this对象的理解,哪些是正确的
A
this总是指向函数的直接调用者(而非间接调用者);
B
如果有new关键字,this指向new出来的那个对象;
C
在事件中,this总是指向触发这个事件的对象;
D
this是函数运行时自动生成的一个内部对象,只能在函数内部使用;
正确答案:B
在事件中,this指向触发这个事件的对象, 特殊的是,IE中的attachEvent中的this总是指向全局对象Window
这题想考的是this是指向绑定事件的元素,而非触发这个事件的元素
典型的例子就是ul和li,你给ul绑定点击事件,点击li,打印this出来的是ul而不是li。
1.函数调用时,指向window
2.以方法调用时,指向调用该方法的对象
3.使用new创建一个对象时,指向该对象
4.call,apply ,bind可以改变this指向 区别,传参不同
new 出来的是一个对象,被赋值的变量只是获得了一个指向这个对象的指针,this应该指向这个对象而不是那个变量
根本原则:函数的调用者是谁,this就是谁
this对象的注意事项:
HTML 级事件:this指向window
DOM0级事件:this指向绑定事件的这个元素
DOM2级事件:this指向绑定事件的这个元素(非IE)this指向window(IE)
new绑定 ---- new一个对象所作的四件事情
新建一个对象
把this的指向指向这个对象
执行构造函数内的代码
返回这个新对象