javascript中三种典型情况下this的含义

this本意:基于函数的执行环境绑定。

1)一般函数内部,返回的是window(作用域链中的第二层全局作用域)

function test() {
return this;
}
alert(test());

2)在对象内部的方法,返回的this,指向该对象。

    var name = "The window";
        var object = {
            name: "MyObject",
            getNameFunc: function() {
                return this.name;
            }
        };
    alert(object.getNameFunc());


3)在匿名函数中,无论是否在对象内部,都是返回window

    function test() {
            return function (){
                return this;
            };
        }
    alert(test()());//注意test,test()和test()(),返回结果均不同。

    var name="The Window";
    var object = {
            name: "My Object",

            getNameFunc: function () {
                return function () {
                    return this.name;
                };
            }
        };

    alert(object.getNameFunc()());  //"The Window"
原文地址:https://www.cnblogs.com/Benjamin/p/5122239.html