方法装饰器中 this 指向问题

来源:6-3 方法装饰器

i杨永安

2022-05-25


const mix = (t, k, d) => {
    const v = d.value;

    d.value = arg => {
        console.log('前')
        v(arg)
        console.log('后')
    }
}

class C {

    data = {
        a: 2
    }

    @mix
    m(arg) {
        console.log('我是 m', '接收了:' + arg, '看看 this:' + this.data.a)
    }

}

new C().m(1);

老师,有办法能让装饰器绑定到当前类的实例吗?也就是 this.data.a 可以访问。

我看到相关解答说装饰器无法获取运行时的数据,那可以怎么样包装获得吗?

写回答

1回答

Dell

2022-05-29

没法包装,类的包装过程,拿不到实例。要么你通过参数传递,给类传递东西,对参数做处理。

0
0

专为小白设计的TypeScript入门课

Dell老师专为TypeScript小白打造的,全栈式教学TS入门课程

2249 学习 · 506 问题

查看课程