Did you know that you can change the attributes for each property in an object? e.g you can hide a certain property, or make them read only, or even provide get/set methods to modify the values etc. ECMASCRIPT 5 provides this out of the box and it's very useful for OO design.
A demo that shows how the primitive JS data types of Number, String, Boolean, undefined and null are not reference based whilst the complete Object data type is referenced based when copied even through its properties are of a primitive type.
I used HTML5 canvas to create this loading widget that you an place on your webpages.
You would usually use animated gifs for something like this but I wanted to attempt this using canvas.
The end result is pretty cool and can be adjusted to dynamically change size, animation speed etc