Я получаю ошибку типа в javascript: обработчик формы не является конструкторомJquery

Программирование на jquery
Ответить
Anonymous
 Я получаю ошибку типа в javascript: обработчик формы не является конструктором

Сообщение Anonymous »

Я пытаюсь изучить интерфейсную разработку из книги под названием «Внешняя веб-разработка: Руководство Big Nerd Ranch». Я копирую/вставляю кодовую книгу на свой компьютер, но сегодня я получил ошибку, что одна из моих функций не является конструктором. В этом разделе книги описывается, как использовать jQuery, а также как создавать и подключать различные модули в ES5, используя некоторую технику кодирования, которую я скопирую здесь. Вот функциональный модуль, который выдает ошибку, называемую formhandler.js:

Код: Выделить всё

(function (window) {
'use strict'
var App = window.App || {};
var $ = window.jQuery;

function FormHandler(selector) {
if (!selector) {
throw new Error('No selector provided');
}
this.$formElement = $(selector);
if (this.$formElement.length === 0) {
throw new Error('Could not find element with selector:' + selector);
}
}
FormHandler.prototype.addSubmitHandler = function (fn) {
console.log('Setting submit handler for form');
this.$formElement.on('submit', function (event) {
event.preventDefault();
var data = {};
$(this).serializeArray().forEach(function (item) {
data[item.name] = item.value
console.log(item.name + ' is ' + item.value);
})
console.log(data);
fn(data);

});
};

App.FormHandler = FormHandler;
window.App = App;
}
)(window);
а это main.js, который вызывает и подключает модуль:

Код: Выделить всё

(function (window) {
'use strict';
var FORM_SELECTOR = '[data-coffee-order="form"]';
var App = window.App;
var Truck = App.Truck;
var DataStore = App.DataStore;
var FormHandler = App.FormHandler;
var myTruck = new Truck('ncc-1701',new DataStore());
window.myTruck = myTruck;
var formHandler = new FormHandler(FORM_SELECTOR);

formHandler.addSubmitHandler(myTruck.createOrder.bind(myTruck));
console.log(formHandler);
})(window);
оператор var formHandler = new FormHandler(FORM_SELECTOR); дает typeError: FormHandler не является конструктором, каким он должен быть из первого модуля и книги.
p>
Я подозревал, что назначаю FormHandler чему-то другому, кроме его основного метода, но, похоже, это не так, а также, поскольку это копипаста из книги, мне трудно найти другую причину ошибки.Спасибо

Подробнее здесь: https://stackoverflow.com/questions/787 ... osntructor
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Jquery»