1.简单介绍

首先先简单的介绍一下rxjs,什么是rxjs呢?!其实也就是一个针对于js的响应式扩展库,以此来支持更多的响应式操作,说白了就是扩展了Observable的操作.目前有一个重写的版本:Reactive-Extensions/RxJS,这是一个重写的反应扩展是最新版本生产环境版本。这种改写是为了有更好的性能、更好的模块性,更好的可调试调用堆栈,而尽量向后兼容,一些重大变化,减少API。具体连接:[rxjs][1]

[1]: https://www.npmjs.com/package...

2.简单剖析

先举个栗子,比如说你有使用Observable的map方法的需求,就想要先import进来,如下(我这里全部导入了,因为Rx下带有map.js文件,所以性质是一样的):

clipboard.png,
然后就可以使用map方法了
clipboard.png
(这里的get方法返回的是Observable对象)
那么问题来了,它是怎么去扩展的呢?!我们来看看map.js的源码吧

clipboard.png
你会看到这里对从第一个require语句中导入模块对象的Observalbe的原型对象做了处理,添加了一个property,就是这个property使得所有的Observable对象都扩展了这个property.想要继续深入的大佬可以继续看相对应的这个方法的具体实现,这里就不在多说(require的方式也是类似不再多说).有说得不对的地方还望不吝赐教


嗯呵吱吱吱
33 声望3 粉丝

Designing my life by coding...