JavaScript设计模式之构造器模式(生成器模式)定义与用法实例分析


Posted in Javascript onJuly 26, 2018

本文实例讲述了JavaScript设计模式之构造器模式(生成器模式)定义与用法。分享给大家供大家参考,具体如下:

工厂模式虽然解决了重复实例化的问题,但无法识别对象类型。

可以采用构造函数(构造方法)可用来创建特定的对象,可以解决工厂模式无法识别对象实例的问题。也就是说,使用构造函数的方法 ,即解决了重复实例化的问题 ,又解决了对象识别的问题。

构造器模式与工厂模式的不同之处在于:

① 构造函数方法没有显示的创建对象 (new Object())

② 直接将属性和方法赋值给 this 对象;

③ 没有 return 语句。

构造函数方法的规范:

① 函数名和实例化构造名相同且大写 (非强制,但有助于区分构造函数和普通函数);

② 通过构造函数创建对象,必须使用new运算符。

function Person(name, age) {
  this.name = name;
    this.age = age;
  this.showName = function() {
      alert(this.name);
    };
}
var person1 = new Person("Alice", 23);
var person2 = new Person("Bruce", 22);

构造器模式的问题:每个方法都要在每个实例上重新创建一遍。

原因:JavaScript中的函数是对象,每定义一个函数,就是实例化了一个Funtion对象,因此,使用构造函数创建的每个实例都有一个同名的方法,但这些方法不是同一个Function的实例,因为不同实例上的同名函数是不相等的。

解决:原型模式,请见://3water.com/article/144485.htm

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

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

Javascript 相关文章推荐
Extjs中RowExpander控件的默认展开问题示例探讨
Jan 24 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
Aug 05 Javascript
JS实现浏览器状态栏文字从右向左弹出效果代码
Oct 27 Javascript
jQuery 3 中的新增功能汇总介绍
Jun 12 Javascript
Google 地图叠加层实例讲解
Aug 06 Javascript
JavaScript实现自动切换图片代码
Oct 11 Javascript
微信小程序 require机制详解及实例代码
Dec 14 Javascript
高效的jQuery代码编写技巧总结
Feb 22 Javascript
从零开始学习Node.js系列教程四:多页面实现的数学运算示例
Apr 13 Javascript
JavaScript生成指定范围随机数和随机序列的方法
May 05 Javascript
mpvue性能优化实战技巧(小结)
Apr 17 Javascript
详解Vue+ElementUI从零开始搭建自己的网站(一、环境搭建)
Apr 30 Javascript
JavaScript设计模式之单例模式原理与用法实例分析
Jul 26 #Javascript
JavaScript设计模式之原型模式分析【ES5与ES6】
Jul 26 #Javascript
如何把vuejs打包出来的文件整合到springboot里
Jul 26 #Javascript
JavaScript中变量提升与函数提升经典实例分析
Jul 26 #Javascript
基于Vue实现微信小程序的图文编辑器
Jul 25 #Javascript
详解ECMAScript typeof用法
Jul 25 #Javascript
微信小程序动态生成二维码的实现代码
Jul 25 #Javascript
You might like
深思 PHP 数组遍历的差异(array_diff 的实现)
2008/03/23 PHP
php读取文件内容至字符串中,同时去除换行、空行、行首行尾空格(Zjmainstay原创)
2012/07/31 PHP
教你如何用php实现LOL数据远程获取
2014/06/10 PHP
PDO::getAttribute讲解
2019/01/28 PHP
PHP ElasticSearch做搜索实例讲解
2020/02/05 PHP
摘自百度的图片轮换效果代码
2007/11/19 Javascript
Javascript hasOwnProperty 方法 & in 关键字
2008/11/26 Javascript
Javascript 作用域使用说明
2009/08/13 Javascript
JavaScript学习笔记(十)
2010/01/17 Javascript
IE6下opacity与JQuery的奇妙结合
2013/03/01 Javascript
Javascript基础教程之while语句
2015/01/18 Javascript
JQuery操作textarea,input,select,checkbox方法
2015/09/02 Javascript
JavaScript给input的value赋值引发的关于基本类型值和引用类型值问题
2015/12/07 Javascript
javascript实现的上下无缝滚动效果
2016/09/19 Javascript
weUI应用之JS常用信息提示弹层的封装
2016/11/21 Javascript
vue表单绑定实现多选框和下拉列表的实例
2017/08/12 Javascript
在react中使用vuex的示例代码
2018/07/30 Javascript
js/jquery遍历对象和数组的方法分析【forEach,map与each方法】
2019/02/27 jQuery
javascript异步处理与Jquery deferred对象用法总结
2019/06/04 jQuery
微信小程序new Date()方法失效问题解决方法
2019/07/29 Javascript
React服务端渲染原理解析与实践
2021/03/04 Javascript
[04:47]DOTA2-潍坊风行电子俱乐部探秘
2014/08/08 DOTA
使用py2exe在Windows下将Python程序转为exe文件
2016/03/04 Python
Python设计模式之策略模式实例详解
2019/01/21 Python
对Python之gzip文件读写的方法详解
2019/02/08 Python
python numpy数组中的复制知识解析
2020/02/03 Python
解决import tensorflow as tf 出错的原因
2020/04/16 Python
html5 自定义播放器核心代码
2013/12/20 HTML / CSS
美国嘻哈首饰购物网站:Hip Hop Bling
2016/12/30 全球购物
英国自行车商店:AW Cycles
2021/02/24 全球购物
元旦活动感言
2014/03/08 职场文书
公务员平时考核实施方案
2014/03/11 职场文书
学习雷锋月活动总结
2014/07/03 职场文书
2014年统战工作总结
2014/12/09 职场文书
检讨书怎么写
2015/05/07 职场文书
村官2015年度工作总结
2015/10/14 职场文书