Я следую учебному пособию по шаблону JS Design, в котором объясняется использование прототипа, чтобы мы не создавали новое «это» каждый раз, когда мы создаем объект.Однако, когда я запускаю код, как показано ниже, появляется сообщение об ошибке, как показано ниже.Я полностью следовал коду учебного пособия, поэтому я не понимаю, почему в учебном пособии нет ошибок.
TypeError: task1.completed не является функцией
var Task = function (name) {
this.name = name;
this.completed = false;
}
Task.prototype.completed = function () {
console.log('completing task: ' + this.name);
this.completed = true;
}
Task.prototype.save = function () {
console.log('saving task: ' + this.name);
}
var task1 = new Task('create a demo for constructors');
var task2 = new Task('create a demo for modules');
var task3 = new Task('create a demo for singletons');
var task4 = new Task('create a demo for prototypes');
task1.completed();
task2.save();
task3.save();
task4.save();
Мой другой вопрос, как упоминалось в руководстве, мы всегда должны использовать этот способ для реализации класса,но почему я не видел этот шаблон во многих кодах?Я вижу только использование прототипа в реализации JS, встроенной в метонды, например.Object.prototype.toString ().Но в нашей реальной жизни я не видел это много.Разве я не знакомый код JS?