Я пытаюсь переопределить .toString () в создаваемом мной объекте JavaScript.Однако, это, кажется, не соблюдается.
Это фрагмент кода, о котором идет речь:
const FormBuilderObject = function() {
var categories = [];
var questions = [];
return {
initCategory: function() {
return new CATEGORY();
},
initQuestion: function() {
return new QUESTION();
},
getQuestions: function() {
return questions;
},
getCategories: function() {
return categories;
},
addCategory: function(category) {
categories.push(category);
},
addQuestion: function(question) {
questions.push(question);
}
}
};
FormBuilderObject.prototype.toString = function() {
return "echo base";
}
var f = new FormBuilderObject();
alert(f);
Это дает "[объект-объект]", что неверно.
Однако, делая это так - работает:
var Foof = function() {}
Foof.prototype.toString = function() {
return "echo base";
}
var F = new Foof();
alert(F);
Этот возвращает "эхо-базу"
Я не совсем уверен, почему первый не работает, а второй работает.Синтаксис примерно такой же?
Есть ли что-то еще, что я делаю, о котором я не знаю?