请老师检查
来源: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回答
同学你好,代码实现正确。另外,混合模式常用一些。其实混合模式和原型模式的区别就是:前者把属性定义在构造函数里面,后者是把属性定义在原型上。一般我们会把属性定义在构造函数上,而方法是一个函数,里面可能会有很多功能,所以把它定义在原型上更便于管理。
工厂模式是为了降低代码重复。例如创建一个对象的过程很复杂,需要一定的代码量,而且很多地方都要用到,那么就会有很多的重复代码。那么就可以把创建对象的代码放到工厂里统一管理。既减少了重复代码,也方便后期的修改维护。当然了,工厂模式只是从表面上简化的创建相似对象,把参数放进去。开发中不常用,了解一下即可。
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
Redamancy_Y6
提问者
2020-03-12
老师,还有个问题,这些声明对象的方法中,哪个是最常用的?有什么区别?
相似问题