请老师检查

请老师检查

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>Document</title>

</head>

<body>

    <script type="text/javascript">  

        // json格式

        // var obj = {

        //     name : 'imooc',

        //     action : function(){

        //         alert('前端');

        //     }

        // }

        // Object方式

        // var obj = new Object();

        // obj.name = 'imooc';

        // obj.action = function(){

        //     alert('前端');

        // }

        // 构造函数方式

        function obj(name, action){

            this.name = name;

            this.action = function(){

                alert('前端');

            };

        }

        // var fn = new obj('name');

        //老师这一步为啥不能少啊,上面那个不是已经是完整的函数了么

        var fn = new obj('imooc');

        console.log(fn.name);

        fn.action();

    </script>

</body>

</html>


正在回答 回答被采纳积分+1

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

2回答
好帮手慕言 2020-06-12 10:21:54

同学你好,构造函数中的this指向实例化对象,fn就是实例化出来的对象。

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

如果同学是下方的写法:

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

那么,this指向函数的调用者,obj是window调用的,因此obj里的this指向的是window。

祝学习愉快~

  • 提问者 qq_慕先生0342934 #1
    还是不太明白,我再去看几遍视频吧,谢谢老师
    2020-06-12 21:50:47
好帮手慕夭夭 2020-06-11 10:49:20

同学你好,代码实现正确。另外,注释的问题解答如下:

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

因为obj是一个构造函数,在里面通过this定义了属性和方法。要通过new去实例化一个具体的对象来使用。给同学打一个比喻,这个构造函数就相当于一个类,假如我们定义的类是一个人类,那么人类保存了很多相同的特性  ,例如人类都有名字. 而通过new实例化出来的就是具体的一个对象 , 例如张三 , 李四 ...所以构造函数可以通俗的理解为一个加工厂,通过new去加工东西。如果空有一个工厂,啥工作都不干,那工厂还有什么意义呢。

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

  • 提问者 qq_慕先生0342934 #1
    老师,请问上面的工厂函数哪个this指向哪里啊,打个比方说我直接调用 obj('xm'),这个时候不就是应该指向obj他自己么,下面执行就是 obj.name = 'xm'; 这样么,我感觉就是这点理解不了
    2020-06-11 21:48:56
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

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

帮助反馈 APP下载

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

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

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