2012-06-10 2 views
-1

Вот как я пытаюсь организовать прототипы:Каков лучший способ организовать прототип объекта?

Однако мне нужно написать дополнительные свойства «методов», чтобы получить доступ к функции прототипа довольно неэффективно.

var Gallery = function(name) { 
    this.name = name; 
} 

Gallery.prototype.methods = { 
    activeCnt: 0, 
    inc: function() { 
     this.activeCnt++; 
    }, 
    dec: function() { 
     this.activeCnt--; 
    }, 
    talk: function() { 
     alert(this.activeCnt); 
    } 
} 


var artGallery = new Gallery('art'); 
var carGallery = new Gallery('car'); 
artGallery.methods.inc(); 
artGallery.methods.talk(); 
carGallery.methods.talk();​ 
+1

В чем проблема? Что ты хочешь делать? – gdoron

+0

Ваше первое предложение, кажется, предполагает, что за ним следует что-то, но его там нет ...? Кроме того, это не сайт для просмотра и предложения кода. Я не думаю, что это правильный вопрос в соответствии с FAQ. –

ответ

2

Просто удалите methods свойства и назначить новый объект в prototype объект Gallery. Также убедитесь, что у него есть свойство, называемое constructor, которое указывает на Gallery. Вот код:

var Gallery = function (name) { 
    this.name = name; 
} 

Gallery.prototype = { 
    activeCnt: 0, 
    inc: function() { 
     this.activeCnt++; 
    }, 
    dec: function() { 
     this.activeCnt--; 
    }, 
    talk: function() { 
     alert(this.activeCnt); 
    }, 
    constructor: Gallery 
}; 


var artGallery = new Gallery('art'); 
var carGallery = new Gallery('car'); 

artGallery.inc(); 
artGallery.talk(); 
carGallery.talk(); 
Смежные вопросы