相关疑难解决方法(0)

打字稿方法装饰器

我有这个代码

function changeFunc() {
    return function(target: any, title: string, descriptor: PropertyDescriptor) {

        descriptor.value = function () {
            console.log(this.name);
        };

        return descriptor;

    }
}


class Man {
    name: string = "asdsds";

    constructor(name: string) {
        this.name = name;
    }

    @changeFunc()
    getName() {
        console.log("Hello");
    }

}


var man = new Man('Manos Serifios');
man.getName();  
Run Code Online (Sandbox Code Playgroud)

换句话说,我尝试(使用装饰器)更改方法

getName() {  
    console.log("Hello");  
}  
Run Code Online (Sandbox Code Playgroud)

有了这个

function () {
    console.log(this.name);
}
Run Code Online (Sandbox Code Playgroud)

但 this.name 评估为未定义。

如果我控制台记录“这个”似乎是正确的(例如男人)。

javascript typescript

6
推荐指数
1
解决办法
2328
查看次数

标签 统计

javascript ×1

typescript ×1