JavaScript设计模式之构造函数模式实例教程


Posted in Javascript onJuly 02, 2018

本文实例讲述了JavaScript设计模式之构造函数模式。分享给大家供大家参考,具体如下:

一、构造函数模式概念

构造函数用于创建特定类型的对象——不仅声明了使用过的对象,构造函数还可以接受参数以便第一次创建对象的时候设置对象的成员值。你可以自定义自己的构造函数,然后在里面声明自定义类型对象的属性或方法。

在JavaScript里,构造函数通常是认为用来实现实例的,JavaScript没有类的概念,但是有特殊的构造函数。通过new关键字来调用自定义的构造函数,在构造函数内部,this关键字引用的是新创建的对象。

二、构造函数模式的作用和注意事项

模式作用:

1.用于创建特定类型的对象

2.第一次声明的时候给对象赋值

3.自己声明构造函数,赋予属性和方法

注意事项:

1.声明函数的时候处理业务逻辑

2.区分和单例的区别,配合单例实现初始化

3.构造函数大写字母开头

三、构造函数模式代码和实战总结

<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
  <title>构造函数模式</title>
</head>
<body>
<!--<script>
  function Car(model,year,miles){
    if(!(this instanceof Car)){
      return new Car(model,year,miles);
    }
    this.model = model;
    this.year = year;
    this.miles = miles;
    this.output = function(){
      return this.model + "走了" + this.miles + "公里";
    }
  }
  var tom = new Car("大叔",2009,20000);
  var dudu = Car("Dudu",2010,5000);
  console.log(typeof tom);
  console.log(tom.output());
  console.log(typeof dudu);
  console.log(dudu.output());
</script>-->
<script>
  //1.用于创建特定类型的对象
  //2.这样的函数名会被人笑话
  //3.js开发的时候写单引号
  //4.js里构造函数比较特殊的地方 new
  //5.其他的语言里 比如PHP 里人家实现 有一个关键字 A class
  //6.zaomen就是构造函数 他又充当了类的概念
  var AA = {
    zaomen:function(huawen) {
      if (!(this instanceof AA.zaomen)) {
        console.log(123);
        return new AA.zaomen(huawen);
      };
      var _huawen = "普通";
      if (huawen) {
        _huawen = huawen;
      }
      this.suo = "普通";
      this.huawen = _huawen;
      this.create = function () {
        return "【锁头】" + this.suo + "【花纹】" + this.huawen;
      }
    }
  };
  var BB = {
    zaomen:function(huawen,suo) {
      if (!(this instanceof BB.zaomen)) {
        return new BB.zaomen(huawen,suo);
      };
      var _huawen = "普通";
      if (huawen) {
        _huawen = huawen;
      }
      this._suo = "普通";
      if (suo) {
        _suo = suo;
      }
      this.suo = _suo;
      this.huawen = _huawen;
      this.create = function () {
        return "【锁头】" + this.suo + "【花纹】" + this.huawen;
      }
    }
  };
  /*function zaomen(huawen){
    if(!(this instanceof zaomen)){
      return new zaomen();
    }
    var _huawen = "普通";
    if(huawen){
      _huawen = huawen;
    }
    this.suo = "普通";
    this.huawen = _huawen;
    this.create = function(){
      return "【锁头】" + this.suo + "【花纹】" + this.huawen;
    }
  }*/
  var xiaozhang = AA.zaomen();
  alert("xiaozhang" + xiaozhang.create());
  var xiaoli = BB.zaomen("绚丽",'123');
  alert("xiaoli" + xiaoli.create());
</script>
</body>
</html>

使用在线HTML/CSS/JavaScript代码运行工具 http://tools.3water.com/code/HtmlJsRun测试运行效果如下:

JavaScript设计模式之构造函数模式实例教程

JavaScript设计模式之构造函数模式实例教程

更多关于JavaScript相关内容可查看本站专题:《javascript面向对象入门教程》、《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
JavaScript的eval JSON object问题
Nov 15 Javascript
javascript encodeURI和encodeURIComponent的比较
Apr 03 Javascript
用js判断页面是否加载完成实现代码
Dec 11 Javascript
解析Jquery取得iframe中元素的几种方法
Jul 04 Javascript
js动态添加删除,后台取数据(示例代码)
Nov 25 Javascript
js使用eval解析json实例与注意事项分享
Jan 18 Javascript
基于Javascript实现弹出页面效果
Jan 01 Javascript
bootstrap3-dialog-master模态框使用详解
Aug 22 Javascript
vue.js使用watch监听路由变化的方法
Jul 08 Javascript
vue.config.js常用配置详解
Nov 14 Javascript
vue中使用腾讯云Im的示例
Oct 23 Javascript
vue里使用create, mounted调用方法
Apr 26 Vue.js
vue-router 源码实现前端路由的两种方式
Jul 02 #Javascript
React Native基础入门之调试React Native应用的一小步
Jul 02 #Javascript
vue-router 源码之实现一个简单的 vue-router
Jul 02 #Javascript
JavaScript设计模式之单例模式简单实例教程
Jul 02 #Javascript
JavaScript设计模式之建造者模式实例教程
Jul 02 #Javascript
JS实现的JSON序列化操作简单示例
Jul 02 #Javascript
JS内部事件机制之单线程原理
Jul 02 #Javascript
You might like
PHP cdata 处理(详细介绍)
2013/07/05 PHP
PHP自毁程序(慎用)
2015/07/09 PHP
PHP脚本自动识别验证码查询汽车违章
2016/12/20 PHP
PHP简单留言本功能实现代码
2017/06/09 PHP
php实现的后台表格分页功能示例
2017/10/23 PHP
jQuery DIV弹出效果实现代码
2009/07/03 Javascript
预加载css或javascript的js代码
2010/04/23 Javascript
JavaScript Date对象 日期获取函数
2010/12/19 Javascript
jquery遍历数组与筛选数组的方法
2013/11/05 Javascript
常用的JavaScript验证正则表达式汇总
2013/11/26 Javascript
js实现jquery的offset()方法实例
2015/01/10 Javascript
JavaScript表格常用操作方法汇总
2015/04/15 Javascript
js实现遍历含有input的table实例
2015/12/07 Javascript
js获取当前日期时间及其它日期操作汇总
2016/03/08 Javascript
判断js的Array和Object的实现方法
2016/08/29 Javascript
如何使用Vuex+Vue.js构建单页应用
2016/10/27 Javascript
jquery 删除节点 添加节点 找兄弟节点的简单实现
2016/12/07 Javascript
Vue.js父与子组件之间传参示例
2017/02/28 Javascript
JS实现多物体运动的方法详解
2018/01/23 Javascript
微信小程序wx:for和wx:for-item的用法详解
2018/04/01 Javascript
小程序云开发初探(小结)
2018/10/24 Javascript
js消除图片小游戏代码
2019/12/11 Javascript
Python异常处理总结
2014/08/15 Python
CSS3 animation实现简易幻灯片轮播特效
2016/09/27 HTML / CSS
Myprotein葡萄牙官方网站:英国优质运动营养品牌
2016/09/12 全球购物
中国跨境电商:Tomtop
2017/03/16 全球购物
外贸业务员求职信范文
2013/12/12 职场文书
中学生自我鉴定
2014/02/04 职场文书
书香校园建设方案
2014/05/02 职场文书
物业管理工作方案
2014/05/10 职场文书
个人租房协议书范本
2014/09/30 职场文书
2014年库房工作总结
2014/11/26 职场文书
2015年中秋节活动总结
2015/03/23 职场文书
2016继续教育培训学习心得体会
2016/01/19 职场文书
中学教代会开幕词
2016/03/04 职场文书
2019学校请假条格式及范文
2019/06/25 职场文书