2012-06-21 3 views
4

Я хотел бы инициализировать объект в JavaScript ..Как инициализировать объект в javascript?

Мой код выглядит следующим образом:

var PageSlider = { 

    sliders: [], 

    addSlider: function(display, target, itemClass, width, height, itemsPerPage, defaultPage){ 
     var slideConfig = { 
       display : display, 
       target : target 
     }; 
     var slider = this.createSlider(slideConfig); 
     slider.initSlider(); 
     this.sliders.push(slider); 

    }, 

    copy : function(obj) { 
     if (null == obj || "object" != typeof obj) return obj; 
     var copy = obj.constructor(); 
     for (var attr in obj) { 
      if (obj.hasOwnProperty(attr)) copy[attr] = obj[attr]; 
     } 
     return copy; 
    }, 

    getInstance : function(){ 
     var copy = PageSlider.copy(PageSlider); 
     this.sliders.length = 0; 
     return copy; 
    } 

} 

Используя метод деЫпзЬапсе() просто скопировать объект. Что мне нужно сделать, так это получить экземпляр объекта.

Помогите пожалуйста. Спасибо.

+0

Метод 'createSlider' - это это должно быть функцией на PageSlider, или это функция на объекте, который создает PageSlider? –

+0

есть. правильно. Мне нужно создать экземпляр объекта, потому что я буду использовать его три раза на одной странице. Проблема заключается в том, что объект не инициализируется. – newbie

+0

просто используйте слово «новое», как в: var slider = new PageSlider(); –

ответ

8

Я бы рекомендовал прототипирования, например, следующие

var PageSlider = function() { 
    this.sliders = []; 
} 

PageSlider.prototype.addSlider = function(display, target, itemClass, width, height, itemsPerPage, defaultPage){ 
    var slideConfig = { 
      display : display, 
      target : target 
    }; 
    var slider = this.createSlider(slideConfig); 
    slider.initSlider(); 
    this.sliders.push(slider); 

} 

slider = new PageSlider(); 
1

Как насчет var pageSlider = PageSlider. PageSlider уже объект.

2

PageSlider is объект уже есть. Таким образом, чтобы получить экземпляр за его пределами, просто использовать его имя, как это:

var giveMeAnInstanceOfPageSlider = PageSlider; 
1

Идея кода является то, что getInstance будет копировать объект PageSlider, в сущности инициализации новый пустой объект, используя значения существующий объект PageSlider - эквивалент получения экземпляра объекта.

Этот код странный, поскольку он размывает линию между «классами» и объектами в JavaScript (что похоже на то, что делает язык программирования Io), и более верно для понятия объектных прототипов.

2

Вы можете сделать это таким образом, так как PageSlider уже есть объект

вар pageSlider = PageSlider

Смежные вопросы