1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
| (function(global, $) { var Greetr = function(firstname, lastname, language) { return new Greetr.init(firstname, lastname, language); } var supportedLangs= ['en', 'es'];
var greetings = { en: 'Hello', es: 'Hola', };
var formalGreetings = { en: 'Greetings', es: 'Saludos', };
var logMessages = { en: 'Logged in', es: 'Iniciar sesión', }; Greetr.prototype = { fullname: function() { return this.firstname + ' ' + this.lastname; }, validate: function() { if (supportedLangs.indexOf(this.language) === -1) { throw 'Invalid language'; }; }, greeting: function() { return greetings[this.language] + ' ' + this.firstname +'!'; }, formalGreeting: function() { return formalGreetings[this.language] + ',' + this.fullname(); }, greet: function (formal) { var msg; if (formal) { msg = this.formalGreeting(); } else { msg = this.greeting(); } if (console) { console.log(msg); } return this; }, log: function() { if (console) { console.log(logMessages[this.language]) + ': ' + this.fullname(); } return this; }, setLang: function(lang) { this.language = lang; this.validate(); return this; } }; Greetr.init = function (firstname, lastname, language) { var vm = this; vm.firstname = firstname || 'Defalut'; vm.lastname = lastname || 'Defalut'; vm.language = language || 'en'; } Greetr.init.prototype = Greetr.prototype;
global.Greetr = global.G$ = Greetr; }(window, jQuery));
|