如何最好地覆盖Javascript对象方法
How best to overwrite a Javascript object method
我正在使用一个允许包含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)
{
...
};
是的,你可以把这个方法重新分配给你自己的函数,正如你所建议的:
Evaluator.getData = function Mine_getData(input)
{
...
};
这将成功地改变.getData(input)
属性被调用时发生的事情。
你可以。
然而,Evaluator并不是一个合适的"类"。你不能写var x = new Evaluator();所以你没有重写,而只是改变变量getData。这就是为什么我们说,在JavaScript中,函数是一等公民,就像任何变量一样。
相关文章:
- 从 javascript 中的对象方法返回一个对象
- 在Javascript中调用对象方法时不是函数类型错误
- Java Script将对象方法映射到数组中的对象
- 将数据从promise then方法传递到对象方法
- 设置显示后Flash对象方法不可用:无
- 通过引用Javascript中的另一个函数来传递对象方法
- Javascript库对象方法声明
- JavaScript对象范围-在对象方法中使用对象变量
- jQuery:如何使用文字对象方法中的方法来获取全局变量
- Javascript 对象方法不更新变量
- setInterval 只在对象方法上运行一次
- 对象方法中函数中的上下文
- 用JavaScript编写对象方法的最佳方式是什么
- 使用回调处理程序调用函数内部的父对象方法
- 从Javascript中的对象方法中访问全局变量
- 将此(对象)传递到一个对象方法嵌套方法中
- 为什么我得到“;不是函数错误”;对于我的对象方法
- 带有回调的Javascript对象方法中的递归
- 更正Node.js异步管道中的对象方法调用
- 如何在对象方法上调用requestAnimFrame