HarmonyOS 对方法使用装饰器方法内部的this引用会变成undefine
export function BRBridge(target: Object, key: string, descriptor: PropertyDescriptor) {
  const originalMethod: Function = descriptor.value
  descriptor.value = (...args: Object[]) => {
    let result: Function = originalMethod(...args)
    return result
  }
  return descriptor
}
// 使用场景是
export class CommonBridge {
  proxy: IWebViewControllerProxy;
  constructor(webviewControllerProxy: IWebViewControllerProxy) {
    this.proxy = webviewControllerProxy;
  }
  @BRBridge
  async getUserInfo(info: BrMethodInfo) {
    this.proxy.runJavaScript();
  }
}
因为装饰器中的target似乎并不是类的实例而是类构造器的实例,所以在实际调用中this被替换成了类构造器的实例,从而proxy成了undefine如何解决这种问题。
        HarmonyOS
      
        赞
        
 收藏 0
 回答 1
 
        待解决
        
相关问题
 应用卡片内部组件能使用装饰器吗? 
1145浏览  • 1回复 待解决
使用@Builder装饰器包含自定义组件的方法与普通方法的区别是什么 
3485浏览  • 1回复 待解决
ArkTs中异步方法如何转变成同步方法 
4014浏览  • 1回复 待解决
HarmonyOS现在的ArkTS语法怎么编写自定义装饰器,包括类、方法、属性、参数的装饰器 
2139浏览  • 1回复 待解决
HarmonyOS 关于自定义事件回调的方法中,this为undefine 
1271浏览  • 1回复 待解决
HarmonyOS 引用找不到方法 
1459浏览  • 1回复 待解决
AOP对方法做执行前插桩、执行后插桩、替换方法 
2128浏览  • 1回复 待解决
系统日历方法使用会抛异常 
1748浏览  • 1回复 待解决
web组件的controller被注册jsbridge的类对象引用后,导致在类对象方法内部调用h5方法时方法卡死 
1457浏览  • 1回复 待解决
HarmonyOS 匿名内部类如何使用外部类的变量与方法 
953浏览  • 1回复 待解决
哪个装饰器是用于定义组件的内部状态的? 
775浏览  • 1回复 待解决
@Sendable装饰器 用于解决无法在taskpool调用对象内的方法。为什么以装饰器的方式解决 
3264浏览  • 1回复 待解决
@Extend装饰器装饰的方法现在不支持跨文件调用,后续是否有计划支持? 
3017浏览  • 1回复 待解决
HarmonyOS 两个自定义UI怎么调用对方的方法 
761浏览  • 1回复 待解决
HarmonyOS  如何直接调用内部page或者组件的方法 
828浏览  • 1回复 待解决
HarmonyOS 上架前内部测试方法 
1338浏览  • 1回复 待解决
Aspect工具装饰器的使用示例 
3277浏览  • 1回复 待解决
HarmonyOS  @Builder装饰的方法可以作为参数传递吗 
1092浏览  • 1回复 待解决
#鸿蒙通关秘籍#为什么我有时候使用@Builder装饰器会直接报错呢?这个装饰器还有限制条件的吗? 
1316浏览  • 1回复 待解决
自定义装饰器的使用问题 
1893浏览  • 2回复 待解决
HarmonyOS 如何在应用内部调用方法清除应用缓存 
833浏览  • 1回复 待解决
HarmonyOS  AsyncCallback的使用方法 
2754浏览  • 1回复 待解决
HarmonyOS 视频使用AVPlayer播放,如果在暂停状态更换surfaceId会变成黑屏 
1277浏览  • 1回复 待解决





















class不是一个对象是一个类,所以在这个类实例化之前是没有this的。