Я пытаюсь передать ссылку на jQuery
объекта к модулю и получаю сообщение об ошибке, которое говорит: Uncaught TypeError: не определено не является функциейUncaught Тип ошибки: Undefined не является функцией JavaScript Модуль
Я работаю над fiddle
, чтобы попытаться понять этот шаблон, который я видел, а также понять прототип и новое ключевое слово.
Я не уверен, что вызывает эту ошибку. Вот мои HTML
и JavaScript
вместе с fiddle
.
HTML:
<div class="js-container" data-options="true"></div>
<div class="js-container" data-options="false"></div>
JavaScript:
$('.js-container').each(function (i, element) {
new MyClass($(element));
console.log($(element));
});
var MyClass = (function ($element) {
this.$element;
console.log(this.$element);
this.init();
MyClass.prototype.init = function() {
this.addText();
return this;
};
MyClass.prototype.addText = function() {
var optText = this.$element.attr('data-options');
this.$element.text(optText);
return this;
};
}());
Я пытаюсь научиться писать больше модуль с JavaScript
. Поэтому, пожалуйста, дайте мне знать, если у меня есть что-то еще, что неверно. Благодаря!
Функция, которая имеет '$ element' как аргумент, немедленно выполняется, но вы не передаете никаких аргументов. И 'this. $ Element' не существует, поэтому' undefined'. Вы смешиваете вещи ... – elclanrs
См. Здесь http://stackoverflow.com/questions/8228281/what-is-this-iife-construct-in-javascript, и здесь http://stackoverflow.com/questions/ 3127429/javascript-this-keyword – elclanrs
Подсказка: Какова ценность 'MyClass'? (Значение является результатом * вызова * анонимной функции - обратите внимание на символ '()' ближе к концу.) – user2864740