当前位置: 首页 > 知识库问答 >
问题:

如何正确地将属性分配给函数范围?

杜霍英
2023-03-14

我最近一直在试验Typescript装饰程序,试图解决应用程序中的一个“问题”。我正在使用JS桥向Android和iOS提供TS代码,目前我们声明如下函数:

index.js

import foo from './bar'

global.App = function() {
  this.foo = foo;
};

上述操作将使foo函数在网桥的本机端可用

我想写一个decorator应用于foo方法,它将在全局上“注册”自己。应用程序但我的任务失败了。

这是起作用的装饰师:

export const Task = (target, propertyKey, descriptor) => {
    let originalMethod = descriptor.value;
    descriptor.value = (...args) => originalMethod.apply(target, args);

    if (!global.App) {
        global.App = function () { 
            this.foo = descriptor.value;
        };
    }
    
    return descriptor;
}

我如何添加另一个方法到全局。App函数?

共有1个答案

萧宣
2023-03-14

首先,只添加了一次foo方法,因为第一次调用装饰器是global。定义了App,并将foo添加到global的分支。应用程序永远不会重新输入。

其次,global。Appfoo每次都会被覆盖,并且不会通过重复调用decorator来维护。

添加另一个分支,在第一次调用后处理添加方法并动态分配方法的名称(我相信这是在propertyKey中提供给decorator的),将允许添加多个方法。

export const Task = (target, propertyKey, descriptor) => {
    let originalMethod = descriptor.value;
    descriptor.value = (...args) => originalMethod.apply(target, args);

    if (!global.App) {
        global.App = function () { 
            this[propertyKey] = descriptor.value;
        };
    } else {
        global.App[propertyKey] = descriptor.value;
    }
    
    return descriptor;
}

像这样的东西可能有用。

 类似资料:
  • 问题内容: 我正在使用React和Typescript。我有一个充当包装器的react组件,我希望将其属性复制到其子级。我正在遵循React的使用克隆元素的指南:https : //facebook.github.io/react/blog/2015/03/03/react-v0.13-rc2.html#react.cloneelement。但是使用时,我从打字稿中得到以下错误: 如何分配正确的类

  • 它给了我一个错误 我已经搜索了一些答案,但无法解决它。 这是我对这段代码的看法,我将视为指针,编译器分配五个内存并为userInput分配一个,然后我将这个地址(我知道java是)传递给class构造函数,我认为字段得到了地址值。 这就是我的理解,我错了吗?

  • 问题内容: 假设我有一个功能 现在,我想将函数分配给一个名为的变量,这样,如果我使用,它将再次调用该函数。如果我只是做作业,它就会返回。 问题答案: 您根本不调用该函数。 括号告诉蟒蛇,你调用的函数,所以当你把它们放在那里,它调用的功能,并指定值 返回 的(在这种情况下)。

  • 我需要将一些信息从编译脚本传递到模板Haskell中。目前编译脚本将信息保存在系统环境中,所以我只是使用包装在中。是否有更好的方法,例如将一些参数传递给(类似于C预处理器的),或者可能是专门为此设计的方法?

  • 内部类上的注释注释@ConfigurationProperties是在测试失败后完成的。Spring不会加载这些属性,不管它们有没有注释,除非它们在同一个属性文件中,在本例中是application-emx.properties。这是为什么?我想把这些财产分开 ===解析====我注意到我必须用getter/setter方法添加一个嵌套类类型的字段,否则Spring不会加载嵌套类中的属性

  • 我试图在Scala中反转包含unicode字符的字符串。我想找到最快的方法。到目前为止,我有以下代码: 在我的macbook 2013上,我得到了以下结果: 但我觉得这些数字是假的。我该如何使用scala、sbt和JMH库对函数进行适当的基准测试? 注意:正如评论中指出的,Java中的微基准测试是一项严肃的业务。请参阅(我如何在Java中编写正确的微基准测试?)和https://groups.go