Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将JavaScript原型方法重写到我的普通JavaScript文件中?_Javascript_Prototypejs - Fatal编程技术网

如何将JavaScript原型方法重写到我的普通JavaScript文件中?

如何将JavaScript原型方法重写到我的普通JavaScript文件中?,javascript,prototypejs,Javascript,Prototypejs,我在JavaScript文件中有一个方法是用prototype编写的: SMRangePickerCtrl.prototype.rangeSelected = function (range) { var self = this; self.onRangeSelect({range: range}); self.value = { startDate: range.startDateAsMoment, endDate: range.endDateAsMome

我在JavaScript文件中有一个方法是用prototype编写的:

SMRangePickerCtrl.prototype.rangeSelected = function (range) {      

    var self = this;
    self.onRangeSelect({range: range});
    self.value = { startDate: range.startDateAsMoment, endDate: range.endDateAsMoment, __$toString: range.text };  
};
现在,我想在单独的JavaScript文件中继承这个方法

我怎么做

像这样的

var myMethod = SMRangePickerCtrl.prototype.rangeSelected;
myMethod(range);
如果需要将此方法添加到其他对象,请使用以下方法:

myObj.rangeSelected = SMRangePickerCtrl.prototype.rangeSelected.bind(myObj);
或者,如果您有一个
SMRangePickerCtrl
类的实例,请说
myAnotherObj
,并希望覆盖此方法,请使用:

myAnotherObj.rangeSelected = function(range) {
...
}
或者,如果要替换
SMRangePickerCtrl
的所有实例的方法,只需使用:

SMRangePickerCtrl.prototype.rangeSelected = function (range) {      
// My implementation here
};

“继承”是什么意思?我的意思是将方法重写到我的自定义代码库中。为什么不在原始代码中更改它?您正在导入的是库吗?如果是,你是如何使用它的?调用的方法在哪里?是的,它是一个库,我想扩展功能。正如我所说的,只需编辑库源代码。如果这不是一个选项,请提供更多详细信息。图书馆是如何使用的?实例在何处/如何创建?此方法在何处/如何调用?您是否也需要具有原始行为的实例?你想添加什么自定义功能?不,绝对不是。这是一个需要在实例上调用的方法。Amit,我在回答中添加了一些建议。