Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Проблемы с прототипированием (https://javascript.ru/forum/misc/60810-problemy-s-prototipirovaniem.html)

Trippal 21.01.2016 13:09

Проблемы с прототипированием
 
Вопрос решался написанием своей библиотеки наследования через метод родителя.
Добрый день, уважаемые форумчане.:help:
есть проблемки с отцами и детьми.:write:
вот базовый класс:
BaseSearchProvider = function(options,data){
	this.options = {
		name: this.name,
		url: this.url,
		urlOptions: this.urlOptions,
	};
	this.data = data;	
	return this;
};
BaseSearchProvider.prototype = {
	getName: function(name){
		if (option.service!= undefined){
			return this.options.name
		}else{alert("Установите провайдер")}
	},
	getUrl: function(url){
		if (option.service!= undefined){
				return this.options.url
		}else{alert("Установите провайдер")}
	},
	getUrlOptions: function(urlOptions){
		if (option.service!= undefined){
				return this.options.urlOptions
		}else{alert("Установите провайдер")}
	},
	getDataOptions: function(data){
		if (option.service!= undefined){
				return this.data
		}else{alert("Установите провайдер")}
	},
};

вот класс наследник:
function OsmSearchProvider(options,data) {
  BaseSearchProvider.call(this); 
};
OsmSearchProvider = Object.create(BaseSearchProvider.prototype);
OsmSearchProvider.prototype.constructor = OsmSearchProvider;
//переопределяем метод getDataOptions базового класса
OsmSearchProvider.getDataOptions = function(data) {
    if (data.type === "Feature") {
            resultCount = 1;
            features[0] = data;
            featureCollection = data;
        }
        else {
            features = data;
            resultCount = data.length;
            if (limitToSend === resultCount)
                featureCollection = data.slice(0, data.length - 1);
            else
                featureCollection = data;
        }
        createDropDown(withPaging);
        searchLayerType = (withPaging ? 1 : 0);
    
};

при создании экземпляра класса наследника возникает множество ошибок, такие как
OsmSearchProvider - не является функцией:haha:
Cannot set property 'constructor' of undefined:blink:

и так далее...

Итого...что я делаю не так?:cray: Ко всему прочему, посоветуйте, как сделать лучше...провайдеры находятся в разных файлах


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