With a JavaScript Array, I can reset it to an empty state with a single assignment:
array.length = 0;
This makes the Array \"appear\" empty
The short answer to your question, I think, is no (you can just create a new object).
In this example, I believe setting the length to 0 still leaves all of the elements for garbage collection.
You could add this to Object.prototype if it's something you'd frequently use. Yes it's linear in complexity, but anything that doesn't do garbage collection later will be.
This is the best solution. I know it's not related to your question - but for how long do we need to continue supporting IE6? There are many campaigns to discontinue the usage of it.
Feel free to correct me if there's anything incorrect above.
Well, at the risk of making things too easy...
for (var member in myObject) delete myObject[member];
...would seem to be pretty effective in cleaning the object in one line of code with a minimum of scary brackets. All members will be truly deleted instead of left as garbage.
Obviously if you want to delete the object itself, you'll still have to do a separate delete() for that.