Я беру курс на Udemy «Javascript: Understanding the Weird Parts» и столкнулся с проблемой, которая не позволит мне двигаться вперед. Я создаю небольшую структуру js. Это имеет простую структуру:«Объект объекта» типа String
(function (global, $){
var Greetr = function(firstName, lastName, language){
return new Greetr.init(firstName, lastName, language);
}
Greetr.prototype = {};
Greetr.init = function(firstName, lastName, language){
var self = this;
self.firstName = firstName || "<first name>";
self.lastName = lastName || "<last name>";
self.language = language || "en";
}
Greetr.init.prototype = Greetr.prototype;
global.Greetr = global.G$ = Greetr;
}(window,jQuery));
Когда я пытаюсь использовать мои рамки, я получаю неожиданный результат:
var name = Greetr("John", "Doe");
console.log(name);
выводит на консоль: «[объект Object]», типа Strin ,
Я что-то упустил? Можете ли вы помочь мне разобраться в решении?
Спасибо заранее!
UPDATE # 1 Я ожидаю объект, так что я могу просматривать его в консоли Chrome, так же, как если вы наберете «окно» в нем.
UPDATE # 2 Удивительно, ошибка в обозначении моего 'имя' объекта:
var name = G$("John", "Doe");
После того, как я переименовал его к чему-то еще, он работал просто отлично!
Добавить функцию ToString. 'Greetr.init.prototype.toString = function() {return this.firstName + '' + this.lastName; }; '. Btw, 'Greetr.prototype' здесь бесполезен, и вам нужно только определить' Greetr.init.prototype'. – Louy