Зачем объявлять свойства в прототипе для переменных экземпляра в JavaScript

Я пытаюсь разобраться с этим черным искусством под названием JavaScript - и, должен признать, очень взволнован. Я искал примеры кода, в основном из "easeljs", так как это то, что я буду использовать в основном. И я немного запутался ..

Я (думаю, я) понимаю разницу между использованиемprototype для функций или свойств, которыеclass переменные и использованиеthis.someProp для переменных экземпляра (да, я понимаю, что в JavaScript нет классов).

Код, который я посмотрел, и использую в качестве шаблонов для моего собственного кода,declare prototype переменные, а затем обращается к ним с этим, т.е.

В конструкторе:

this.name = name;

Тогда декларация:

Object.prototype.name;

И позже,

this.name = "Freddy";

Это внутри функций, вызываемых с помощью «new», поэтому в данном случае, насколько я понимаю,this ссылается на текущий объект. Что меня озадачивает, что делает объявление прототипа и почему мы используем его для переменных экземпляра?

осветление: В следующем коде я не вижу, что достигается объявлением прототипа радиуса:

(function(){
    // constructor
    function MyCircle(radius){
        this.radius = radius;
    }
    MyCircle.prototype.radius;
    this.area = function(){
        return 3.14*this.radius*this.radius;
    };
    window.MyCircle = MyCircle;
}());

Ответы на вопрос(4)

Ваш ответ на вопрос