0
点赞
收藏
分享

微信扫一扫

JavaScript之OOP

本文介绍下js中OOP的一些用法:

JavaScript之OOP_JavaScript

 

由上图可得:

1.typeof null结果是object,所以需要用与运算符再次判断是否为空。

2.构造器实现重载后,可依序传入参数或传入对象。

JavaScript之OOP_JavaScript_02

 

由上图可得:要实现链式调用,需要在函数中返回this。

JavaScript之OOP_模块化_03

 

由上图可得:

1.由于不能直接new出抽象类的对象,可以通过throw new Error的方式来实现。

2.detect、stop、init函数前应加上prototype。

3.用Object.create(DetectorBase.prototype)来实现类的继承。

JavaScript之OOP_语法糖_04

 

由上图可得:

1.可在构造器内部使用Object.defineProperty定义并限定属性。

2.用Object.seal方法可以阻止类的属性扩展且使得属性不可配置。

JavaScript之OOP_模块化_05

 

由上图可得:

1.模块化原来是由common.js、sea.js/CMD、require.js/AMD等类库实现的。ES6出现之后,被export、import的语法糖所替代。

2.使用ES5实现模块化的方式如上图。

JavaScript之OOP_模块化_06

 

由上图可得:

1.使用立即执行函数使得内部的变量和函数不会污染全局。

2.使用instanceof对调用构造器的方式进行判断,若不是使用new构造的对象则会报错。

3.先用inherit实现继承再对子类进行扩展。

JavaScript之OOP_模块化_07

 

由上图可得:

1.使用Object.freeze对类和其原型进行封印,阻止被修改。

2.通过定义global对象的属性使得三个Detector类暴露出来。

3.输出的结果为:

JavaScript之OOP_构造器_08

 


举报

相关推荐

0 条评论