请老师检查

来源:3-10 编程练习

Redamancy_Y6

2020-03-12 12:03:00

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <script type="text/javascript">
    // 工厂模式
      function createObject(name,action){
          var obj = new Object();
          obj.name = name;
          obj.action = function(){
              return action;
          }
          return obj;
      }
      
      var box = createObject("imooc","前端");
      alert(box.action());
    // 原型模式
    function test(){}
    test.prototype = {
      name : "imooc",
      action : function(str){
      alert(str);
      }
    }
    var run = new test();
    run.action("前端");
    // 混合模式
    function blog(name){
      this.name = name;
    }
    blog.prototype = {
      action:function(str){
        alert(str);
      }
    }
    var peo = new blog("imooc");
    peo.action("前端");
  </script>
</body>
</html>


写回答

2回答

好帮手慕夭夭

2020-03-12

同学你好,代码实现正确。另外,混合模式常用一些。其实混合模式和原型模式的区别就是:前者把属性定义在构造函数里面,后者是把属性定义在原型上。一般我们会把属性定义在构造函数上,而方法是一个函数,里面可能会有很多功能,所以把它定义在原型上更便于管理。

工厂模式是为了降低代码重复。例如创建一个对象的过程很复杂,需要一定的代码量,而且很多地方都要用到,那么就会有很多的重复代码。那么就可以把创建对象的代码放到工厂里统一管理。既减少了重复代码,也方便后期的修改维护。当然了,工厂模式只是从表面上简化的创建相似对象,把参数放进去。开发中不常用,了解一下即可。

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

0

Redamancy_Y6

提问者

2020-03-12

老师,还有个问题,这些声明对象的方法中,哪个是最常用的?有什么区别?

0

0 学习 · 14456 问题

查看课程