When using Sinon, how to replace stub function in a stub instance?

There's no need to overwrite the a.method, instead we can use callsFake on the a.method directly:

const a = sinon.createStubInstance(MyContructor);
a.method.callsFake(func);

The method you mentioned (sinon.stub(object, "method", func)) is a method that was available in version 1.x, and did the following according to the documentation:

Replaces object.method with a func, wrapped in a spy. As usual, object.method.restore(); can be used to restore the original method.

However, if you're using sinon.createStubInstance(), all methods are already stubbed. That means you can already do certain things with the stubbed instance. For example:

function Person(firstname, lastname) {
  this.firstname = firstname;
  this.lastname = lastname;
}
Person.prototype.getName = function() {
  return this.firstname + " " + this.lastname;
}

const p = sinon.createStubInstance(Person);
p.getName.returns("Alex Smith");

console.log(p.getName()); // "Alex Smith"

If you really want to replace a stub by another spy or stub, you could assign the property to a new stub or spy:

const p = sinon.createStubInstance(Person);
p.getName = sinon.spy(function() { return "Alex Smith"; }); // Using a spy
p.getName = sinon.stub(); // OR using a stub

With Sinon.js 2.x and higher, it's even easier to replace a stubbed function by using the callsFake() function:

p.getName.callsFake(function() { return "Alex Smith"; });

After stubbing a whole object using sinon.createStubInstance(MyConstructor) or sinon.stub(obj) you can only replace the stub by either assigning a new stub to the property (as described by @g00glen00b) or restoring the stub before re-stubbing.

var a = sinon.createStubInstance(MyConstructor);
a.method.restore();
sinon.stub(object, "method", func);

The advantage of this is that you can still call a.method.restore() afterwards with the expected behavior.

It would be more convenient if the Stub API had a .call(func) method to override the function being called by the stub after the fact.