在尝试扩展javascript函数时,如何避免太多递归错误?

在尝试扩展javascript函数时,如何避免太多递归错误?,javascript,recursion,Javascript,Recursion,我有一个javascript类,它的属性是函数。当我尝试像这样重新定义该函数时: myObject.someBehavior = function() { myObject.someBehavior(); extraLogic(); }; 我得到了一个“太多的递归错误”。我理解为什么会出现此错误,myObject.someBehavior持有对函数的引用,因此更改函数不会更改引用。所以我的问题是如何避免这种情况 为了澄清,我试图扩展javascript对象的行为函数。在C#中,我只需重

我有一个javascript类,它的属性是函数。当我尝试像这样重新定义该函数时:

myObject.someBehavior = function()
{
  myObject.someBehavior();
  extraLogic();
};
我得到了一个“太多的递归错误”。我理解为什么会出现此错误,myObject.someBehavior持有对函数的引用,因此更改函数不会更改引用。所以我的问题是如何避免这种情况


为了澄清,我试图扩展javascript对象的行为函数。在C#中,我只需重写该方法,首先调用基类的版本。不知道如何在javascript中实现这一点。

您可以使用。但我不确定这是否是一个好主意。你最好还是去学习


为什么需要递归调用该函数?是否有任何条件将退出递归函数?在递归调用中似乎没有基本情况。你需要有一些条件来结束递归过程,否则它将永远循环。我试图避免递归,这是我的问题。我只想做一个新函数作为旧函数的扩展(在现有代码之后添加一些额外的代码),新函数是否需要相同的名称?
myObject.someBehavior = (function(oldFunction) {
    return function() {
        oldFunction();
        extraLogic();
    };
})(myObject.someBehavior);