this指向

2019-07-01  本文已影响0人  路灯下de男孩

this指向的7个规则,腾讯课堂考拉老师哪里学到的,收益颇深;

规则:
1.函数直接用 圆括号() 运行,上下文是window对象;

fn(); // 此时this指向的是window;

2.对象打点调用函数,上下文是这个对象;

obj.fn();  // 此时this指向的是obj;

3.数组(类数组对象)中枚举出函数,上下文是这个数组(类数组对象);

// arr[index](); // 这时候this指向的是arr;
function fun1(fn){
    arguments[0](3,4); // arguments[] = fun2 运行时fun2的this指向arguments;
}
function fun2(){
    alert(this.length); // 这时候这个this指向的是fun1 的arguments
}
fun1(fun2,4,5,6,7); // 5

4.定时器调用函数,上下文是window
5.被当做事件处理函数时,上下文是触发事件的DOM元素

dom.onclick = function(){
    alert(this.innerHTML)  // 此时this指向的是dom
}

6.用new调用函数,上下文是函数内创建的空白对象;
用new调用函数会经过4步;
①创建一个空对象(这一步很隐秘,看不到)
②将this绑定到这个秘密创建的空对象中
③执行语句
④返回对象

7.用apply、call、bind执行上下文;

fn.apply(obj,[a,b,c,d]);
fn.call(obj,a,b,c,d);
fn.bind(obj);
上一篇下一篇

猜你喜欢

热点阅读