function log1(target: any, propertyKey: string, descriptor: PropertyDescriptor) {
// target 是类的原型对象
// propertyKey 是方法名
// descriptor 是方法的属性描述符
console.log(`Calling ${propertyKey} with`, target, descriptor)
let methodname: Function = descriptor.value
descriptor.value = function () {
arguments[0] = '新加的字符串' + arguments[0]
return methodname.apply(target, arguments)
}
}
class Person1 {
name = 123
@log1
test(a: string) {
console.log(a)
return arguments
}
}
let tmp1: any = new Person1()
console.log('返回值是', tmp1.test('1'))