当前位置: 首页 > 面试题库 >

以编程方式将代码添加到javascript函数

牧献
2023-03-14
问题内容

我试图自定义现有的JS库,而不修改原始JS代码。这段代码将加载一些我可以访问的外部JS文件,而我想做的就是更改原始文件中包含的功能之一,而无需将整个内容复制并粘贴到第二个JS文件中。
因此,例如,禁区JS可能具有以下功能:

var someFunction = function(){
    alert("done");
}

我希望能够以某种方式在该函数中追加或添加一些JS代码。原因主要是在原始的不可触摸的JS中,该功能非常庞大,如果该JS得到更新,则我用它覆盖的功能将过时。

我不确定这是否可行,但我想我会检查一下。


问题答案:

如果someFunction该功能全局可用,则可以缓存该功能,创建自己的功能,然后调用它。

所以如果这是原始的…

someFunction = function() {
    alert("done");
}

你会做的…

someFunction = (function() {
    var cached_function = someFunction;

    return function() {
        // your code

        var result = cached_function.apply(this, arguments); // use .apply() to call it

        // more of your code

        return result;
    };
})();

注意,我使用了.apply来调用缓存的函数。这使我可以保留的期望值this,并可以将传入的任何参数作为单个参数传递,而不管有多少个参数。



 类似资料:
  • 我正在尝试在Android上添加Wifi网络,我想知道如何连接到不广播其SSID的Wifi网络(它是否有空SSID或带有\0s的清晰SSID)。 这是我目前用于广播其SSID的Wifi网络的内容:

  • 问题内容: 对于RealityKit的文档包括结构:,,和用于添加材料到。 或者,您可以在模型中加载带有附加材料的模型。 我想以编程方式添加自定义材料/纹理。如何在不向Reality Composer或其他3D软件的模型中添加材料的情况下即时实现这一目标? 问题答案: 已更新:2020年6月23日 。 目前,RealityKit 2.0中有4种类型的材料 : 简单材质 不发光材料 咬合材料 Vid

  • AndroidR、 属性。selectableItemBackground存在,但如何通过编程将其添加到ImageButton? 此外,我如何在文档中找到答案?这里提到过,但我看不到任何关于它实际如何使用的解释。实际上,我似乎很少发现文档有用,但我希望这是我的错,而不是文档的错。

  • Spring非常出色地为注释提供了一个属性。我希望以编程方式提供带有时区的方法。 例如,假设我想在当地时间午夜打开洛杉矶和芝加哥大楼的灯。我想从我的存储库中获取建筑物。 时区可以在运行时提供还是以其他方式注入? 比如: 我知道方法不能接受任何参数,所以以这种方式提供时区是不行的。

  • 问题内容: 由于采用了插件架构,因此我试图以编程方式将bean添加到我的webapp中。我有一个通过注释创建的Spring bean ,并且正在实现接口。 我的覆盖函数如下所示: 基本上,我不知道如何向给setApplicationContext的applicationContext对象添加一个bean。谁能告诉我我将如何处理错误的方法? 好的,这就是我最终得到的解决方案: 问题答案: 在Spri

  • 问题内容: 是否可以通过编程将xml属性设置为标题,然后使用将该属性用于动画? 这就是我声明我的方式: 这是我的xml声明: 为了添加动画,我必须使用以下代码: 如何将(?)标题传递给函数? 问题答案: 是的,这是可能的: 扩展的类能够调用 例如: 更新 似乎您专门尝试共享标题,因此我将执行以下操作: MainActivity的示例xml: 然后在“活动”参考中,该视图: 然后在您的SecondA