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
2024-01-12
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0