2016-04-01 16 views
1

Ben çalışan bir multiselect bir jsfiddle almaya çalışıyorum değil ama ben konsolda bir hata alıyorum:javascript - CategorySelect bir yapıcı

CategorySelect

nasıl kurucu değil benim kategorimSeçin değil bir kurucu?

kodu:

var CategorySelect = (function() { 
    function CategorySelect() { 
     var _this = this; 
     this._configureMultiselect = function() { 
      _this._multiselectConfiguration = { 
       buttonWidth: '100%', 
       buttonContainer: '<div style="height: 64px;" />', 
       buttonClass: 'none', 
       nonSelectedText: "select category", 
       includeSelectAllOption: true, 
       disableIfEmpty: true, 
       onSelectAll: function() { 
        if (!$("#category-div span.multiselect-selected-text").text()) { 
         $("#category-div span.multiselect-selected-text").text('Select category'); 
        } 
       }, 
       onChange: function(option, checked) { 
        _this._selectedCategories = ko.observableArray([]); 
        var self = _this; 
        $('#category-select option:selected').each(function() { 
         self._selectedCategories.push(($(this).text(), $(this).val())); 
        }); 
        console.log(_this._selectedCategories()); 
       } 
      }; 
     }; 
     this._instantiateCategories = function() { 
      _this._categories = ko.observableArray([ 
       new Category("Vegan Meat", 1), 
       new Category("Vegan Dairy", 2), 
       new Category("Confectionary", 3), 
       new Category("Baking", 4), 
       new Category("Dessert", 5), 
       new Category("Restaurants", 6), 
       new Category("Grocers", 7) 
      ]); 
     }; 
     this._configureMultiselect(); 
     this._instantiateCategories(); 
     $("#category-select").multiselect(this._multiselectConfiguration); 
    } 
    return CategorySelect; 
})(); 

Here is the jsfiddle

cevap

2

Beyannameler JavaScript kapsam üstüne hoisted, ama asla onların atamaları vardır. Eğer CategorySelect referans zamanda

, bunun undefined olmanın değeri yol içeren kapsam üstünde bir var CategorySelect; var gibi ve dolayısıyla değil yapıcı, hiçbir şeye ayarlanmamış.

jsFiddle.