gpt4 book ai didi

javascript - 如何正确关联此对象的两个构造函数?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:39:56 26 4
gpt4 key购买 nike

我正在尝试使用 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com