返回顶部
首页 > 资讯 > 前端开发 > JavaScript >JavaScript中创建类的优秀做法以及什么时候创建类
  • 198
分享到

JavaScript中创建类的优秀做法以及什么时候创建类

2024-04-02 19:04:59 198人浏览 安东尼
摘要

javascript中创建类的优秀做法以及什么时候创建类,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。使用默认参数和属性缩写,清理我们的Jav

javascript中创建类的优秀做法以及什么时候创建类,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

使用默认参数和属性缩写,清理我们的JavaScript代码很容易。

构造函数

为了让我们的构造函数更好地发挥作用,我们应该做一些事情。它们是:

如果可能的话,初始化所有构造函数中的所有成员数据

我们应该将它们全部放入构造函数中,以便在实例化对象时将它们全部初始化。

所以我们可以这样写:

class Person {   constructor(name) {     if (this.instance) {       this.instance = {         name       }     }     return this.instance;   } }

现在我们确保所有的东西都用一个值初始化了。

在构造函数中创建一个单例

如果我们只需要一个构造函数的一个实例,那么我们可以创建一个实例。

例如,我们可以编写以下代码:

class Person {   constructor(name) {     if (this.instance) {       this.instance = {         name       }     }     return this.instance;   } }

在上面的代码中,如果 this.instance 还没有定义,我们返回我们创建的对象。

否则,我们将返回设置为 this.instance 的任何内容。

优先使用深度拷贝而不是浅拷贝

深度拷贝会复制所有内容,因此比浅层复制要好得多,浅拷贝会留下一些引用原始对象的东西。

如果我们想要真正的副本,那就不好了。

因此,我们必须编写代码来制作深层副本,如下所示:

const copy = obj => {   const copied = {     ...obj   };   for (const k of Object.keys(obj)) {     if (typeof obj[k] === 'object') {       copied[k] = {         ...copied[k]       };       copy(copied[k]);     }   }   return copied; }

如果发现嵌套对象,我们只使用扩展运算符来复制嵌套对象,并递归执行相同的操作。

然后,我们返回我们复制的对象。

我们什么时候应该创建一个类?

我们不应该总是创建类。在一些场景中,创建一个类是有意义的。

模拟现实世界的对象

类非常适合建模真实世界的对象,因为它们可以建模对象的行为。

它们允许我们将实例变量和方法封装到一个包中,分别存储状态和对对象执行操作。

建模抽象对象

同样,我们可以使用类对抽象对象进行建模。

它们可以用来进行抽象,抽象是对不同类型对象的概括。

类非常适合存放子类的共享成员,子类可以继承它们。

但是,我们应该保持继承树的简单性,这样人们就不会被代码弄糊涂了。

降低复杂度

我们可以使用类来降低程序的复杂性。

类非常适合隐藏信息。在JavaScript中,类中还没有私有变量,因此我们必须在方法中隐藏数据。

这样我们就可以最小化程序不同部分之间的耦合。

隐藏实现细节

方法也适合隐藏实现细节。

我们可以把细节隐藏在方法中,只运行需要的东西。

为此,我们可以在方法内部嵌套函数和变量。

限制变化的副作用

由于我们可以隐藏事物,因此可以减少更改的影响。

与隐藏实现一样,可以通过在方法内限制更改的影响来隔离更改的影响。

隐藏全局数据

通过将全局数据放入类的方法中,它们可以成为私有数据。

这样,他们就不必向公众公开。我们要做的就是使用 let 和 const 在方法中声明它们。

简化参数传递

如果我们将相同的参数传递给不同的函数,则可以将参数更改为实例变量,将函数更改为方法。

例如,如果我们有:

const speak = (name) => `${name} spoke`; const greet = (name) => `hi, ${name}`;

然后,我们可以将方法放入自己的类中,如下所示:

class Person {   constructor(name) {     this.name = name;   }   speak() {     return `${this.name} spoke`;   }   greet() {     return `hi, ${this.name}`;   } }

现在,我们不必在任何地方传递 name。

我们只需要创建一个 Person 实例,并调用这些方法而无需传入任何参数。

我们可以创建类来封装数据并将内容打包在一起。但是,我们不应该为所有内容创建类。

另外,我们应该尽可能深拷贝而不是浅拷贝。

看完上述内容,你们掌握JavaScript中创建类的优秀做法以及什么时候创建类的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网JavaScript频道,感谢各位的阅读!

--结束END--

本文标题: JavaScript中创建类的优秀做法以及什么时候创建类

本文链接: https://lsjlt.com/news/82547.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • JavaScript中创建类的优秀做法以及什么时候创建类
    JavaScript中创建类的优秀做法以及什么时候创建类,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。使用默认参数和属性缩写,清理我们的Jav...
    99+
    2024-04-02
  • php创建类方法是什么
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑PHP 支持面向对象编程,支持类和对象的概念。从数据类型的角度看,对象是一种比较特殊的数据类型。它由一个事先定义好的类生成,而类由用户自己定义,它由一系列数据和对这些数...
    99+
    2016-05-17
    php
  • android studio创建类时要注意什么
    在Android Studio中创建类时,需要注意以下几点:1. 包名:在创建类时,需要为类指定一个包名。包名应该使用逆序域名的方式...
    99+
    2023-10-18
    android
  • android studio创建类的方法是什么
    在Android Studio中创建一个新类的方法有以下几种:1. 使用菜单:点击菜单栏中的File -> New -> Java ...
    99+
    2023-09-28
    android
  • Java创建包和类的方法是什么
    要在Java中创建包和类,可以按照以下步骤进行:1. 创建包:在源代码文件夹中创建一个与包名相同的文件夹。2. 创建类:在包中创建一...
    99+
    2023-10-10
    Java
  • java创建内部类的方法是什么
    在Java中创建内部类的方法有两种:1. 非静态内部类(成员内部类):在外部类的成员方法中创建内部类的对象。```public cl...
    99+
    2023-10-12
    java
  • java创建抽象类的方法是什么
    在Java中创建抽象类的方法是使用关键字 abstract 来声明一个类为抽象类。抽象类不能被实例化,只能被继承,子类必须实现抽象类...
    99+
    2024-03-07
    java
  • Python创建类并使用的方法是什么
    在Python中创建类并使用的方法如下:1. 使用`class`关键字定义一个类,并指定类的名称。2. 在类中定义类的属性和方法。3...
    99+
    2023-09-27
    Python
  • JavaScript中的定时器怎么创建
    这篇文章主要介绍了JavaScript中的定时器怎么创建的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript中的定时器怎么创建文章都会有所收获,下面我们一起来看看...
    99+
    2024-04-02
  • JS中有哪些创建类的方法
    小编给大家分享一下JS中有哪些创建类的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体如下:Javascript是一种基于...
    99+
    2024-04-02
  • 怎么创建一个创建MySQL数据库中的datetime类型
    今天小编给大家分享一下怎么创建一个创建MySQL数据库中的datetime类型的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。...
    99+
    2023-06-29
  • java clazz类创建的方式是什么
    在Java中,我们可以使用以下两种方式来创建一个class类:1. 使用关键字class:```public class MyCla...
    99+
    2023-10-11
    java
  • java中的不可变类及其创建规则
    不可变类顾名思义就是这个类被实例化之后不可被重新赋值,java提供的八个包装类和java.lang.String都是不可变类。创建自定义不可变类需要遵守的规则:使用private和final修饰成员变量。提供带参构造方法,用于初始化成员变量...
    99+
    2020-12-14
    java 不可变类 创建 规则
  • Pandas中Series的创建及数据类型转换
    目录 一、实战场景二、主要知识点三、菜鸟实战1、创建 python 文件,用Numpy创建Series2、转换Series的数据类型 四、补充1、创建 pytho...
    99+
    2024-04-02
  • linux如何查看文件夹什么时候创建的
    这篇文章主要介绍“linux如何查看文件夹什么时候创建的”,在日常操作中,相信很多人在linux如何查看文件夹什么时候创建的问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux如何查看文件夹什么时候创建的...
    99+
    2023-06-30
  • mongodb中索引分类是怎样的以及如何创建索引
    mongodb中索引分类是怎样的以及如何创建索引,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。学习索引分类和创建索引:   &nbs...
    99+
    2024-04-02
  • Python中动态创建类实例的方法
    简介 在Java中我们可以通过反射来根据类名创建类实例,那么在Python我们怎么实现类似功能呢? 其实在Python有一个builtin函数import,我们可以使用这个函数来在运行时动态加载一些模块。如...
    99+
    2022-06-04
    实例 方法 动态
  • Go调度器什么时候会创建新的M和P?
    问题内容 刚刚学习了golang GMP模型,现在我了解了goroutines、操作系统线程和golang上下文/处理器如何相互协作。但我还是不明白什么时候会产生M和P? 例如,我有一...
    99+
    2024-02-06
  • Android中Fragment子类及其PreferenceFragment的创建过程演示
    Fragment创建方式 Fragment有两种使用方式:静态方式 和 动态方式。 1. 静态方式 第一步:先定义一个Fragment子类。 public class Ex...
    99+
    2022-06-06
    fragment Android
  • JavaScript的Symbol类型、隐藏属性及全局注册表怎么创建
    本文小编为大家详细介绍“JavaScript的Symbol类型、隐藏属性及全局注册表怎么创建”,内容详细,步骤清晰,细节处理妥当,希望这篇“JavaScript的Symbol类型、隐藏属性及全局注册表怎么创...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作