我正在尝试使用 javascript 创建我自己的提醒应用程序,所以基本上我可以创建一组提醒,如类别(工作、学校、编程提醒等)。每一个都可以有他们的提醒,比如在工作类别上,我可以在那里有提醒列表等等。我还想将集合及其提醒保存在本地存储中,然后在页面上重新创建它们。当然,提醒列表应该在它所属的集合上。
在我做这个页面之前,我真的想先建立这个模型,我决定继续使用 oop 方法作为一种练习,我正在弄清楚如何将它们关联起来,这就是我到目前为止所得到的..
var ReminderSet = function(set){
this.set = set; //could be work, school , etc
}
var Reminders = function(new_reminder){
this.reminders = new_reminder; // a new reminder
}
ReminderSet.prototype.reminders = new Reminders();
ReminderSet.prototype.printSet = function(){
console.log(this.set, this.reminders); /* gives the ff output
work { reminders: 'finish task on time' }
school { reminders: 'study on chem' }*/
}
var workReminders = new ReminderSet("work"); // create a new set of reminder
var schoolReminders = new ReminderSet("school"); // create a new set of reminder
workReminders.reminders = new Reminders("please the boss"); //add a new reminder to work
workReminders.reminders = new Reminders("finish task on time");//add a new reminder to work
schoolReminders.reminders = new Reminders("finish projects"); //add new reminder to school
schoolReminders.reminders = new Reminders("study on chem"); //add new reminder to school
workReminders.printSet();
schoolReminders.printSet();
问题是它不会让我为集合创建多个提醒,我希望你能帮我解决这个问题谢谢!需要明确的是,我只学习了 3 个月的 javascript,这是我第一次做 oop,虽然我之前做过一些以前的任务项目,但我认为真正熟悉 oop 很重要。
最佳答案
您只能添加一个提醒的原因是您没有构建提醒集合。每次设置新提醒时,都会覆盖之前的提醒。
我稍微重写了您发布的代码,以使用我认为更直观的属性名称,同时也在每个 ReminderSet
中构建提醒集合。
var ReminderSet = function (name) {
this.name = name;
this.reminders = [];
}
ReminderSet.prototype.add = function (reminder) {
this.reminders.push(reminder);
return this;
}
ReminderSet.prototype.list = function() {
console.log(this.reminders);
}
var Reminder = function (description) {
this.description = description;
}
var work = new ReminderSet('work')
.add(new Reminder('Get to work on time!'))
.add(new Reminder('Finish all my work!'));
var school = new ReminderSet('school')
.add(new Reminder('Finish my coursework'))
.add(new Reminder('Study for my exams!'));
work.list();
school.list();
关于javascript - 如何正确关联此对象的两个构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46781216/