Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Определение экземпляра в обьекте-прототипе (https://javascript.ru/forum/misc/39009-opredelenie-ehkzemplyara-v-obekte-prototipe.html)

animatio 12.06.2013 14:04

Определение экземпляра в обьекте-прототипе
 
Здравствуйте.
Изучаю сейчас лучший в мире язык программирования JS по Definitive Guide.
Столкнулся с проблемой.
function Rectangle(a,b){
this.wideness=a;
this.tallness=b;
}

Rectangle.prototype.perimetr=function(){
return 2*(this.a+this.b);
}


var smallRectangle=new Rectangle(20,30);
var val=smallRectangle.perimetr
alert(val);//Выводит function(){
return 2*(this.a+this.b); а не искомое значение.

Помогите,кто в курсе. Всем хорошего настроения)

рони 12.06.2013 14:11

animatio,
function Rectangle(a,b){
 this.wideness=a;
 this.tallness=b;
 }

 Rectangle.prototype.perimetr=function(){
 return 2*(this.wideness+this.tallness);
 }
 var smallRectangle= new Rectangle(20,30);
 var val=smallRectangle.perimetr()
 alert(val);

danik.js 12.06.2013 14:32

Кстати такое можно сделать через getter. Не работает правда в старых браузерах:

function Rectangle(a,b){
  this.wideness=a;
  this.tallness=b;
}
Object.defineProperty(Rectangle.prototype, 'perimeter', {
    get: function(){
        return 2*(this.wideness+this.tallness);
    }
});
var smallRectangle= new Rectangle(20,30);
var val=smallRectangle.perimeter;
alert(val);


Часовой пояс GMT +3, время: 19:54.