0

所以我已经完成了一堂课

function myClass()
{
}

用方法

myClass.prototype.theMethod=function()
{
}

这很好,但我有一种情况,我需要使用这个类,但如果可能的话,向方法添加额外的命令而不是仅仅覆盖整个东西?

4

2 回答 2

0

像这样:

var theOldMethod = myClass.prototype.theMethod;
myClass.prototype.theMethod=function()
{
    //Do stuff here
    var result = theOldMethod.apply(this, arguments);
    //Or here
    return result;
}
于 2013-09-06T10:38:11.977 回答
0

如果您需要覆盖某些对象中的操作,则可以执行以下操作:

var myInstance = new myClass();

myInstance.theMethod = function () {
    // do additional stuff
    // now call parent method:
    return myClass.prototype.theMethod.apply(this, arguments);
}

对于子类解决方案几乎相同,但您不是在实例上执行,而是在继承的“类”的原型上执行。

于 2013-09-06T10:35:26.703 回答