I prefer method 3, declaring it as a property of the constructor:
function HeavilyInstantiated() {}
HeavilyInstantiated.helper = function(param) {
return compute(param);
}
HeavilyInstantiated.prototype.computeHard = function(params) {
var someResult = HeavilyInstantiated.helper(params.prop1);
return someResult;
}
You still have only one instance of the helper method, but it doesn't pollute the global namespace or the instances of HeavilyInstantiated (it is not on their prototype chain).