Question: As I more heavily use JavaScript like a high-level object-oriented language, I find myself thinking like the C/C++ programmer that I am when I'm finished with objects. I know the GC is going to run eventually and clean up my mess, but are there things I can do to actually help it along? 

For example, I have an array of large/complex primary objects... each primary object might have arrays and other subsidiary object references inside. If I'm done with a primary object and just remove it from the array, the GC will presumably eventually figure out everything else that object pointed to all by itself, circular internal references and all. But does it make sense when removing the primary object from the storage array to go through it and array.length=0 any arrays and reference=null any objects to basically make the GC job easier (e.g. explicitly removing references means less for the GC to track)? Kind of a manual destructor if you will. Is it worth it to do that or am I wasting time/effort for little/no gain?

I suppose this is more of a general theory of GC question (Java etc. too) but I'm primarily interested in JavaScript for the purposes of this question.

Thanks!

Answer: 
Rarely.

Which is different from never.

Generally, if you develop in a reasonable manner, unused objects will be falling out of scope appropriately and the Garbage Collector will simply work as expected. And unless you really understand what you're doing, efforts to help the Garbage Collector do its job often don't work as intended. Garbage Collection is an area that has undergone significant optimization by the creators of the various Javascript engines. Generally, you shouldn't mess with it unless:

* You have **proven** to yourself with hard numbers from analysis tools that there is a
real need, and
* You can demonstrate real understanding of **what actually needs to be change** in order
to help the Garbage Collector.

Neither of these is easy to achieve.

So maybe the best answer is that unless you're already advanced enough to understand the exceptions, you probably shouldn't be worrying about this.
Very smart people have worked very hard on those garbage collection models. The odds that anything you do is going to massively improve performance over what they implemented is relatively low. 

If garbage collection is becoming a major cost for you, you're likely better off focusing on reducing the number of objects that have to be garbage collected (consider [Object Pool Pattern](http://en.wikipedia.org/wiki/Object_pool_pattern))