JS的设计模式之构造函数模式详解

这次给大家带来js的设计模式之构造函数模式详解,使用js构造函数模式的注意事项有哪些,下面就是实战案例,一起来看一下。

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

作用和注意事项 

用于创建特定类型的对象。

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

可以传参进去,自己声明构造函数,赋予属性和方法

注意事项:

注意new的使用

区分与单例的区别

基本用法 
在JavaScript里,构造函数通常是认为用来实现实例的,JavaScript没有类的概念,但是有特殊的构造函数。我们通过使用new操作付,我们可以告诉javascript我们要创建的的一个新的对象并且新对象的成员都是构造函数里定义的。在构造函数里,this指向的是新创建的对象,基本语法如下:

function PersonBir(name, year, month) {    this.month = month;    this.year = year;    this.name = name;    this.output= function () {        return this.name + ":" + this.year +"年"+ this.month+"月";    };}var ming= new PersonBir("小明", 1998, 5);var gang= new PersonBir("小刚", 2000, 4);console.log(ming.output());console.log(gang.output());1234567891011121314

登录后复制

这就是最简单的构造函数的方法,但是我们有没有发现一个问题,我们在继承的时候是不是感觉太麻烦了,所以我们可以通过原型prototype,将ouput方法添加到创建的对象上,来看下面的这一段代码

function PersonBir(name, year, month) {    this.month = month;    this.year = year;    this.name = name;}PersonBir.prototype.output=function(){     return this.name + ":" + this.year +"年"+ this.month+"月";}var ming= new PersonBir("小明", 1998, 5);var gang= new PersonBir("小刚", 2000, 4);console.log(ming.output());console.log(gang.output());123456789101112

登录后复制

这样output单实例可以在PersonBir对象实例中共享使用,我们通过给构造函数命名时采用函数名大写来表示,以便于区分普通函数。

强制使用new操作符 
对于构造函数new操作符的使用我们来看下面这些代码,我们通过判断this值的instanceof是是不是PersonBir达到强制使用new操作符,以达到目的。

function PersonBir(name, year, month) {    //核心代码,如果为假,就创建一个新的实例返回。    if(!(this instanceof PersonBir)){        return new PersonBir(name, year, month);    }    this.month = month;    this.year = year;    this.name = name;}PersonBir.prototype.output=function(){     return this.name + ":" + this.year +"年"+ this.month+"月";}var ming= new PersonBir("小明", 1998, 5);var gang= new PersonBir("小刚", 2000, 4);console.log(ming.output());console.log(gang.output());

登录后复制

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

js设计模式之-单例模式的使用

前端为什么要使用模块化?

CSS的常见兼容性问题解决方案

以上就是JS的设计模式之构造函数模式详解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2782980.html

(0)
上一篇 2025年3月8日 16:42:10
下一篇 2025年3月7日 12:26:00

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • JavaScript中的希尔排序详解

    本篇文章讲述了javascript中的希尔排序,大家对javascript中的希尔排序不了解的话或者对javascript中的希尔排序感兴趣的话那么我们就一起来看看本篇文章吧, 好了废话少说进入正题吧! JavaScript中的希尔排序 希…

    编程技术 2025年3月8日
    200
  • JS设计模式之建造者模式详解

    这次给大家带来js设计模式之建造者模式详解,使用js建造者模式的注意事项有哪些,下面就是实战案例,一起来看一下。 概念 建造者模式可以将一个复杂的对象的构建与其表示相分离,使同样的构建过程可以创建不同的表示。如果我们用了建造者模式,那么用户…

    编程技术 2025年3月8日
    200
  • JS设计模式之工厂模式详解

    这次给大家带来js设计模式之工厂模式详解,使用js工厂模式的注意事项有哪些,下面就是实战案例,一起来看一下。 概念:工厂模式定义了一个用于创建对象的接口,这个接口由子类决定实例化哪一个类,该模式是一个类的实例化延迟到了子类。而子类可以重写接…

    编程技术 2025年3月8日
    200
  • JS设计模式之代理模式详解

    这次给大家带来js设计模式之代理模式详解,js代理模式的注意事项有哪些,下面就是实战案例,一起来看一下。 概念:代理模式就是为一个对象提供一个代用品或者占位符,以便控制对它的访问。也就是为了保障当前对象的单一职责,而需要创建另一个对象来处理…

    编程技术 2025年3月8日
    200
  • JS设计模式之命令模式详解

    这次给大家带来js设计模式之命令模式详解,使用js命令模式详解的注意事项有哪些,下面就是实战案例,一起来看一下。 概念 命令模式用于将一个请求封装成一个对象,从而可以用不同的参数对客户进行参数化,该模式将函数的调用请求和操作封装成一个单一的…

    编程技术 2025年3月8日
    200
  • JavaScript中的堆排序详解

    本篇文章讲述了javascript中的堆排序,大家对javascript中的堆排序不了解的话或者对javascript中的堆排序感兴趣的话那么我们就一起来看看本篇文章吧, 好了废话少说进入正题吧 堆排序可以说是一种利用堆的概念来排序的选择排…

    2025年3月8日
    200
  • JavaScript中的计数排序详解

    本篇文章讲述了javascript中的计数排序,大家对javascript中的计数排序不了解的话或者对javascript中的计数排序感兴趣的话那么我们就一起来看看本篇文章吧, 好了废话少说进入正题吧 计数排序的核心在于将输入的数据值转化为…

    2025年3月8日
    200
  • JS设计模式之原型模式详解

    这次给大家带来js设计模式之原型模式详解,使用js原型模式的注意事项有哪些,下面就是实战案例,一起来看一下。 概念:原型模式是指用原型实例指向创建对象的种类,并通过拷贝这些原型创建新的对象。对于原型模式,我们利用javascript原型继承…

    编程技术 2025年3月8日
    200
  • javascript如何实现小球跳动效果

    这次给大家带来javascript如何实现小球跳动效果,javascript实现小球跳动效果的注意事项有哪些,下面就是实战案例,一起来看一下。 今天介绍的是一种通过javascript实现的一种炫酷的动画效果,具体实现特效我通过图片展示给大…

    2025年3月8日
    200
  • 细说JavaScript中的作用域与变量

    本篇文章讲述了JavaScript中的作用域与变量,大家对JavaScript中的作用域与变量不了解的话或者对JavaScript中的作用域与变量感兴趣的话那么我们就一起来看看本篇文章吧, 好了废话少说进入正题吧 变量作用域 作用域:就是变…

    2025年3月8日
    200

发表回复

登录后才能评论