请看注释区块

请看注释区块

<!DOCTYPE html>

<html lang="en">


<head>

    <meta charset="UTF-8">

    <title>5-4</title>

</head>


<body>

    <script>

        var a = 1;

        function foo() {

            console.log(this.a);

        }

        var person = {

            a: 2,

            foo: foo,

        }

        var person2 = {

            a: 3,


        }

        person.foo();  //这里不执行 下面的自结束运行不了

        (person2.foo = person.foo)();


    </script>

</body>


</html>


正在回答

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

1回答

同学你好,对于你的问题解答如下:

  1. 因为语法不规范,所以注释掉person.foo();这句代码就会出现报错,建议修改:在如下位置添加分好就可以了。

    http://img1.sycdn.imooc.com//climg/5f4dbe9b097016c107220182.jpg

  2. (person2.foo = person.foo)();这句代码运行输出的结果是1,原因如下:person2.foo = person.foo只是将person.foo赋值给person2.foo, 匿名自执行函数是window调用的,可以打印foo方法中的this查看指向。示例:

    http://img1.sycdn.imooc.com//climg/5f4dbf3309bac80609370537.jpg

    打印结果如下:

    http://img1.sycdn.imooc.com//climg/5f4dbf400997d7c407520181.jpg

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

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

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

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

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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