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

 更新时间:2018年07月26日 10:46:57   作者:筱葭  
这篇文章主要介绍了JavaScript设计模式之构造器模式(生成器模式)定义与用法,结合实例形式分析了javascript构造器模式的概念、原理、与工厂模式的区别以及相关使用方法,需要的朋友可以参考下

本文实例讲述了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的实例,因为不同实例上的同名函数是不相等的。

解决:原型模式,请见://www.jb51.net/article/144485.htm

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

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

相关文章

  • NodeJS的Promise的用法解析

    NodeJS的Promise的用法解析

    下面小编就为大家带来一篇NodeJS的Promise的用法解析。小编觉得挺不错的,现在分享给大家,也给大家做个参考
    2016-05-05
  • 完美解决IE不支持Data.parse()的问题

    完美解决IE不支持Data.parse()的问题

    下面小编就为大家带来一篇完美解决IE不支持Data.parse()的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起 小编过来看看吧
    2016-11-11
  • 原生JS实现的雪花飘落动画效果

    原生JS实现的雪花飘落动画效果

    这篇文章主要介绍了原生JS实现的雪花飘落动画效果,涉及javascript数值运算及页面元素属性动态操作相关实现技巧,需要的朋友可以参考下
    2018-05-05
  • uniapp使用Vant-weapp的最新方法教程

    uniapp使用Vant-weapp的最新方法教程

    Vant Weapp是有赞前端团队开源的一套小程序UI组件库,助力开发者快速搭建小程序应用,下面这篇文章主要给大家介绍了关于uniapp使用Vant-weapp的最新方法教程,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-04-04
  • JavaScript函数中的防抖与节流原生实现及第三方库的使用

    JavaScript函数中的防抖与节流原生实现及第三方库的使用

    当你频繁的触发用户界面时,会不停的触发事件处理函数,可能导致界面卡顿,浏览器奔溃,页面空白等情况,而解决这一问题的,正是函数节流与函数防抖,所以本文将给大家介绍一下JavaScript函数中的防抖与节流原生实现及第三方库的使用,需要的朋友可以参考下
    2023-10-10
  • IE浏览器不支持getElementsByClassName的解决方法

    IE浏览器不支持getElementsByClassName的解决方法

    这篇文章主要介绍了IE浏览器不支持getElementsByClassName的解决方法,本文的方法比较完美的解决了这个问题,需要的朋友可以参考下
    2014-08-08
  • 微信小程序实现云开发上传文件、图片功能

    微信小程序实现云开发上传文件、图片功能

    在使用小程序的过程中,在编辑个人资料时,通常会面临上传头像、上传背景图片的情况,而这个开发过程需要怎样实现呢?这篇文章主要给大家介绍了关于微信小程序实现云开发上传文件、图片功能的相关资料,需要的朋友可以参考下
    2022-12-12
  • JavaScript talbe表中指定位置插入一行的实现代码 脚本之家修正版

    JavaScript talbe表中指定位置插入一行的实现代码 脚本之家修正版

    用js实现的在table中指定的位置插入一行,先点一下表中你想插入的位置,点击即可。
    2009-06-06
  • 浅谈bootstrap源码分析之tab(选项卡)

    浅谈bootstrap源码分析之tab(选项卡)

    下面小编就为大家带来一篇浅谈bootstrap源码分析之tab(选项卡)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • js实现兼容IE、Firefox的图片缩放代码

    js实现兼容IE、Firefox的图片缩放代码

    这篇文章主要介绍了js实现兼容IE、Firefox的图片缩放代码,涉及JavaScript操作图片元素的相关技巧,需要的朋友可以参考下
    2015-12-12

最新评论