你不知道的js-混合对象-类

Posted lu0511

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你不知道的js-混合对象-类相关的知识,希望对你有一定的参考价值。

1、类是一种设计模式,许多语言提供了对于面向类软件设计的原生语法,js中也有类似的语法,但是和其他语言中的类完全不同。

2、类意味着复制

3、js并不会像类那样自动创建对象的副本。

4、在继承或者实例化时,js的对象机制并不会自动执行复制行为,简单来说,js中只有对象,并不存在可以被实例化的类。一个对象并不会被复制到其他对象,他们会被关联起来。

5、混入模式(无论显事还是隐式)可以用来模拟类的复制行为,但是通常会产生丑陋并且脆弱的语法,比如显式伪多态,这会让代码更加难懂并且难以维护。

显式混入其实没有办法模拟类的复制行为,因为对象只能复制引用,无法复制被引用的对象或者函数本身。如果你修改了共享的函数对象,比如添加了一个属性,父类和子类都会受到影响。

6、总的来说,在js中模拟类是得不偿失的,虽然能解决当前的问题,但会有更多隐患

 

以上是关于你不知道的js-混合对象-类的主要内容,如果未能解决你的问题,请参考以下文章

你不知道的JavasScript上篇·第四章·混合对象·类

你不知道的js - 对象

《你不知道的JS(中卷)》对象

你不知道的JS系列 ( 33 ) - 对象复制

读书笔记-你不知道的JS上-对象

你不知道的JS系列 ( 39 ) - 对象遍历