单例模式,工厂模式,构造函数模式,原型模式难吗?

470 阅读2分钟

JS中的常见的设计模式

1.单例模式

2.工厂模式

3.构造函数模式

4.原型模式

单例模式:

其实就是一个对象,我们把这对象称为命名空间。
普通单例,是没有私有的内容,别的人员可以任意更改你的内部属性。
高级单例模式,使用的这个单例的人是改变不了内部变量的。用的人每次都会重新执行该高级单例,每次获取的都是初始值。

工厂模式:

就是一个普通函数,适用于那些批量生产单例的情况。

构造函数模式:

new执行函数的时候,会开辟新的作用域,形参赋值,变量提升。
然后把函数中的this指向了一个新开辟的堆内存。
在这之后,再去操作this的时候,其实就是在操作这个堆内存。
最后把this返出去。

工厂模式和构造函数模式的区别?

构造函数模式不需要自己创造一个对象。
构造函数模式不需要自己主动return内容。

原型模式:

每一个实例都有一个__proto__的属性,指向所属类的原型。
每一个函数都有一个prototype属性,指向自己的原型。
每一个类的原型上都有一个 constructor属性,指向所有类(函数)本身。

作用域链:

变量的查找机制,变量的查找机制,先看变量是不是自己私有的,不是的话就去上级作用域去查找,一直找到window位置。

原型链:

属性的查找机制,先在自己身上查找,没有的话就通过__proto__向自己所属类的原型上查找。一直找到基类的原型,有的话就返回对应的值,没有的话就是undefined。