Well, I expect them to behave like JS functions. If it were a JS function, it would check to see if the object type matches, and then do its thing. If you think of it like this, it wouldn't make much sense for it to use another object type's function.
I'm not talking about another objects' functions, I'm talking about separate objects having the same prototypes in JS sense but being otherwise separate implementations of the same interfaces in C.