请问这样可以吗?

请问这样可以吗?

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <script type="text/javascript">
    // 工厂模式
    function createObject(name){
        var obj1=new Object();
        obj1.name=name;
        obj1.action=function(){
            alert("前端1");
        }
        return obj1;
    }
    var a=createObject("imooc");
    
    // 原型模式
    var obj2=function(){
        obj2.prototype.name="imooc";
        obj2.prototype.action=function(){
            alert("前端2");
        }
    }
    var b=new obj2();
    
    // 混合模式
    var obj3=function(name){
        this.name=name;
    }
    obj3.prototype.action=function(){
        alert("前端3");
    }
    var c=new obj3("imooc");
    </script>
</body>
</html>

请问有哪里需要改进呢?

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

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

1回答
樱桃小胖子 2019-05-10 11:45:32

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

希望可以帮到你!

  • 提问者 Takm #1
    您好,请问var obj3=function(name){}和function obj3(name){}有什么区别呢?
    2019-05-10 14:53:17
  • 樱桃小胖子 回复 提问者 Takm #2
    var obj3=function(name){} 函数只有在var语句声明之后才能被调用, function obj3(name){}函数可以在function声明之前被调用,题目要求混合模式创建对象格式为:构造+原型 ,一般我们写构造函数,都是以function obj3(name){}这种形式来写。实际上同学之前写var obj3=function(name){}也可以的。
    2019-05-10 15:05:40
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

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

帮助反馈 APP下载

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

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

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