effect测试

//effect.spec.ts it('runner', () => {        // runner 就是 effect(fn) 返回一个函数,执行该函数就相当于从新执行了一次传入 effect 的 fn        // 同时执行 runner 也会将 fn 的返回值返回        let foo = 1        const runner = effect(() => {            foo++            return 'foo'        })        expect(foo).toBe(2)        // 调用 runner        const r = runner()        expect(foo).toBe(3)        // 获取 fn 返回的值        expect(r).toBe('foo')    })
//effect.tslet activeEffect class ReactiveEffect{    private _fn    constructor(fn){        this._fn = fn    }    run(){        activeEffect = this        let res =this._fn()        //返回执行后的fn        return res    }}export function effect(fn){    const _effect = new ReactiveEffect(fn)    _effect.run()    //通过bind扭转this指向    return _effect.run.bind(_effect) }