我有这个代码
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 评估为未定义。
如果我控制台记录“这个”似乎是正确的(例如男人)。