I would like to override a function of a JS object by adding it to its prototype.

```
var originalObject = function(){
    this.someFun = function(){
        // ...
    }
}

var otherObj = function(){
    this.otherFun = function(){
        originalObject.prototype.fun =  function(){
            return 'This is the overwritten function.';
        }
        var o = new originalObject();
        return o.fun()
    }
}

```

This way when I execute `new otherObj().otherFun()` I have the expected result (***'This is the overwritten function.'***), but if the function I'm trying to add is already part of `originalObject`

```
var originalObject = function(){
    this.fun = function(){
        return 'This is the original function';
    }
    this.someFun = function(){
        // ...
    }
}

```

Then the result is not the expected one, infact `new otherObj().otherFun()` returns ***'This is the original function'***.

so, is [this](https://stackoverflow.com/a/6885525/2689638) the only way to add the method to the prototype and override it? And most important why I can't "overwrite" the function in the prototype?