JavaScript中的this详解

来源:互联网 发布:电源仿真软件 编辑:程序博客网 时间:2024/04/25 07:11

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();       // 输出 windowobj.fn();   // 输出 objsum();      // 输出 windowoo.sum();   // 输出 window

2、自执行函数的this是window;

3、给一个对象绑定匿名函数时,该函数的this变为该对象;

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

document.getElementById("div1").onclick = function(){    console.log(this); // 输出为绑定的div元素    fn();              // 输出为window}
原创粉丝点击