1. The new keyword in JavaScript is used to create an instance of an object and link it to a constructor function. It sets the object's internal [[Prototype]] property to the constructor function's prototype property. 2. The prototype property allows methods and properties to be shared among all instances of objects created with a constructor function. Changes to the prototype property are visible to all object instances. 3. In older versions of Internet Explorer, the __proto__ property serves a similar purpose to the prototype property for sharing properties among objects, but __proto__ has been deprecated and prototype should be used instead.