我正在使用允许包含JS文件的框架。在我的JS文件的顶部,我有类似的东西:
<import resource="classpath:/templates/webscripts/org/mycompany/projects/library/utils.lib.js">
我想覆盖在非常大的utils.lib.js文件中定义的相当小的方法。而不是直接在utils.lib.js中进行更改,这是一个框架的一部分文件,我只想覆盖一个方法。 utils.lib.js文件看起来像:
var Evaluator =
{
/**
* Data evaluator
*/
getData: function Evaluator_getData(input)
{
var ans;
return ans;
},
...
}
我想改变getData方法的作用。对不起基本问题,但在导入将JS内容复制到我的JS文件顶部的文件之后,我可以执行以下操作:
Evaluator.getData = function Mine_getData(input)
{
...
};
答案 0 :(得分:3)
是的,您可以按照以下建议将该方法重新分配给您自己的函数:
Evaluator.getData = function Mine_getData(input)
{
...
};
这将成功更改调用.getData(input)
属性时发生的情况。
答案 1 :(得分:0)
是的,你可以。
然而,Evaluator不是一个合适的“阶级”。你不能写var x = new Evaluator(); 所以你没有覆盖,只是改变变量getData。这就是为什么我们说在JavaScript中,函数是一等公民,被视为任何变量。