How does JavaScript .prototype work