请问关于this的指向

来源:7-3 新的方法

1LBY1

2020-04-30 18:24:14

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Document</title>

</head>

<body>

<script>

var obj = {

    birth: 1990,

    getAge: function () {

        var b = this.birth; // 1990

        var fn = function () {

            return new Date().getFullYear() - this.birth; // this指向window或undefined

        };

        return fn();

    }

};

       console.log(obj.getAge())

</script>

</body>

</html>

老师第二个this.birth为什么指向的是window或undefined而不是getage

写回答

1回答

好帮手慕慕子

2020-04-30

同学你好, this最终指向调用它的对象. 同学代码中的写法,相当于全局中调用了fn方法,所以this指向window.如下:

http://img.mukewang.com/climg/5eaaaddf09bf672012220660.jpg

同学可以直接返回fn, 在外面使用obj对象调用,此时的this就是指向getAge了,如下:

http://img.mukewang.com/climg/5eaaae7809a9ae8f17240724.jpg

http://img.mukewang.com/climg/5eaaae880911369f17600388.jpg

同学可以测试理解下,祝学习愉快~

0

0 学习 · 10739 问题

查看课程