欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

js中不同环境下的this分别指的是什么?

程序员文章站 2022-11-20 15:12:15
js中不同环境下的this分别指的是什么? 在js中,不同的环境下,this所指不同,下面做下小结,也是给自己一个提醒。 四种调用模式 1、函数调用 ==window 2、...

js中不同环境下的this分别指的是什么?

在js中,不同的环境下,this所指不同,下面做下小结,也是给自己一个提醒。

四种调用模式

1、函数调用 ==window

2、方法调用 ==宿主

3、构造器 ==实例对象

4、上下文(间接调用)

    function fn() {
        console.log(this);
    }

    var obj = {fn:fn};

    var o = {
        obj: {
            f:fn
        }
    };
    fn();//window
    obj.fn();//obj
    o.obj.f();//obj
    new fn();//fn构造函数的实例对象
    fn.call([1,2,3]);//数组
    fn.call({val:100});//对象

    setTimeout(function () {
        console.log(this);  //window
    },100);

    document.getElementsByTagName('p')[0].addEventListener('click',function () {
        console.log(this);  //p标签
    });

js中不同环境下的this分别指的是什么?