我这个输出结果为啥不一样啊,差哪了

我这个输出结果为啥不一样啊,差哪了

https://img1.sycdn.imooc.com//climg/62f31a5e09e3aa1b14720612.jpg

https://img1.sycdn.imooc.com//climg/62f31a6d09d15f0510390510.jpg

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>函数的上下文(this)</title>
</head>

<body>
    <script>
        var xiaoming = {
            name: '小明',
            age: 20,
            fn: function () {
                console.log('我是' + this.name + ',我' + this.age);
            }
        };

        // xiaoming.fn();
        var fn = xiaoming.fn;
        fn();
    </script>
</body>

</html>


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,是属性名的问题。课程中用的是nickname

https://img1.sycdn.imooc.com//climg/62f31ba00906546904170120.jpg

而同学用的是name。

在window对象下默认有name属性,值为空字符串

https://img1.sycdn.imooc.com//climg/62f31bef0997d8d409210107.jpg

https://img1.sycdn.imooc.com//climg/62f31bf50959bce403960034.jpg

所以同学测试结果中名字后面为空字符串,而window对象下没有nickname属性,结果就是undefined。

祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师