A-A+

javascript设计模式之——工厂模式

2016年12月11日 默认文章 暂无评论

创建(相似)对象。

  1. // 工厂模式
  2. // 简单工厂模式
  3. var Footbal= function(){
  4. this.info='足球';
  5. }
  6. Footbal.prototype={
  7. getNum:function () {
  8. console.log('11ren');
  9. }
  10. }
  11. var Basketbal= function(){
  12. this.info='足球';
  13. }
  14. Footbal.prototype={
  15. getNum:function () {
  16. console.log('5人');
  17. }
  18. }
  19. var SportFactory=function(name){
  20. switch(name){
  21. case 'NBA':
  22. return new Basketbal();
  23. case 'wordcup':
  24. return new Footbal();
  25. }
  26. }
  27. // 为世界杯创建一个足球,只需记住运动工厂即可,调用并创建
  28. var footbal=SportFactory("wordcup");
  29. console.log(footbal);
  30. console.log(footbal.info);
  31. footbal.getNum();
上面是通过类实例化对象创建,下面则是通过创建一个新对象,然后包装增强其属性和功能来实现的。
如果前面的类继承同一父类,则其父类原型上的方法可共用,后面寄生式创建的对象都是一个新的个体,其方法不能共用。视具体情况而定。
  1. function createPop(name,text){
  2. var o=new Object();
  3. o.content=text;
  4. o.show=function(){
  5. // 具体方法
  6. }
  7. if (type="alert") {
  8. alert('111')
  9. // 弹出框差异部分
  10. }
  11. if (type="toottip") {
  12. // toottip差异部分
  13. }
  14. return o;
  15. }
  16. // 示例:
  17. var userAlert=createPop('alert','名字写错了');