JavaScript中的this详解

JS中的this指的是当前行为主体,context代表的是当前行为执行的环境,this和函数的context没有任何关系。

那么问题来了,如何区分this?

1、函数执行,首先看函数前有没有“.”,若有,则前面是谁this就是谁,若没有,this就是window;

例如:

function fn(){
    console.log(this);
}
var obj={fn:fn};
var oo={
    sum:function(){
        fn();
    }
};
function sum(){
    fn();
}
fn();       // 输出 window
obj.fn();   // 输出 obj
sum();      // 输出 window
oo.sum();   // 输出 window
2、自执行函数的this是window;
3、给一个对象绑定匿名函数时,该函数的this变为该对象;

例如:给一个元素绑定事件时,事件执行的函数中this 是该元素

document.getElementById("div1").onclick = function(){
    console.log(this); // 输出为绑定的div元素
    fn();              // 输出为window
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值