/object-oriented-javascript-todos

object-oriented-javascript-todos

Primary LanguageHTML

Object Oriented JavaScript Todos

Learning Competencies

  • Write a constructor that creates a new TodoList and new Task using JavaScript constructors and prototypical inheritance.
  • Implement an API in plain JavaScript

Summary

This challenge should be done entierly in the JavaScript console within the chrome developer tools.

This is part two of the JavaScript Todos challenge

This challenge is designed to introduce you to JavaScript the language before we introduce features of the web browser.

Build the following API

// Note we are using a JavaScript constructor now.
var groceryList = new TodoList();
groceryList.add('bread');
groceryList.add('cheese');
groceryList.add('milk');

// tasks is now an array of Task objects
groceryList.tasks //-> [Task, Task, Task]

groceryList.list();
//> Task {id: 1, description: 'bread', completed: false}
//> Task {id: 2, description: 'cheese', completed: false}
//> Task {id: 3, description: 'milk', completed: false}


// getting a task object
var breadTask = groceryList.tasks[0];

breadTask.id //-> 1 (some unique numerical ID)
breadTask.description //-> 'bread'
breadTask.completed //-> false


// This should complete the task
breadTask.complete();

breadTask.completed //-> true

groceryList.list();
//> Task {id: 1, description: 'bread', completed: true}
//> Task {id: 2, description: 'cheese', completed: false}
//> Task {id: 3, description: 'milk', completed: false}


// This should remove the task from the todo list
groceryList.remove(breadTask);

groceryList.list();
//> Task {id: 2, description: 'cheese', completed: false}
//> Task {id: 3, description: 'milk', completed: false}