0
Ich versuche zu sehen, wie grundlegende Prototyp-Muster funktionieren. Ich versuche zu sehen, wie ich bestehende Funktionalität eines Widgets erweitern kann. Betrachten Sie es als Plugin Erweiterungssystemjavascript Erweiterung des vorhandenen Prototyp-Musters zur Unterstützung weiterer Optionen
Voraussetzung:
- Datei
widgets.calculator.js
hat einoption={ text: ''}
- in
main.js
ich jetztnew window.widgets.calculator({ text: 'Root Element' });
- in einer anderen Datei aufrufen können
widgets.calculator-extension.js
ich möchte erweitern Funktionalität bestehendewidgets.calculator.js
, um eine weitere Option und vielleicht einige andere Funktionen zu unterstützen - so tha t jetzt in
main.js
sollte ich in der Lage sein, als auch andere Option zu verwenden, wie
new window.widgets.calculator({ text: 'Root Element', input: 'form input' });
JSFIDDLE:https://jsfiddle.net/bababalcksheep/7scxed7j/
Code:
// file widgets.calculator.js
(function (widgets, $, undefined) {
'use strict';
widgets.calculator = function (options) {
this.options = $.extend(true, {
text: 'some text'
}, options);
//
this.ele = $('<div/>').html(this.options.text).addClass('ui-calculator').appendTo('body');
//
};
widgets.calculator.prototype = {
getRootElement: function() {
return this.ele;
}
};
}(window.widgets = window.widgets || {}, jQuery));
//
//
//main.js
var widget = new window.widgets.calculator({
text: 'Root Element'
});
console.log(widget.getRootElement());
//
/*
// widgets.calculator-extension.js
// how to extend existing widgets.calculator with more options
//
//main.js
var widget = new window.widgets.calculator({
text: 'Root Element',
input: 'form input'
});
console.log(widget.getInput());
*/
Ich habe versucht, aber tut scheint nicht zu funktionieren. Können Sie bitte prüfen, fiddle https://jsfiddle.net/bababalcksheep/7scxed7j/3/ – django
, wenn ich nicht '' 'if (extension.options.input) {' '' dann habe ich noch ein Problem – django