In computer science, a stack or LIFO (last in, first out) is an abstract data type that serves as a collection of elements, with two principal operations: push, which adds an element to the collection, and pop, which removes the last element that was added. -- Stack (abstract data type), Wikipedia
The goal of this exercise is to practice writing prototype methods. As a reminder of how we use prototypes, we've provided starter code including a constructor function and one completed prototype method. Your task will be to complete the remaining method.
- Fork and clone this repository.
- Change into the new directory.
- Install dependencies.
- Create a working branch,
challenge
. - Follow the remaining instructions.
Create a custom JavaScript object modeling a stack using a constructor function
and a prototype.
Starter code has been provided in lib/stack.js
.
-
You should be able to create a new stack with
let stack = new Stack();
. -
Your stack should have two methods,
push
andpop
.push
adds a new value to the stack's storage and returns the stack itself.pop
removes the most recently added value from the stack's storage and returns it.
-
You should not use
Array.prototype.push()
orArray.prototype.pop()
.
As you work, you may run grunt test
to check your code against these
requirements.
let stack = new Stack(1, 2, 3);
stack.pop(); //=> 3
let stack = new Stack();
stack.push(1).push(2).push(3);
stack.pop(); //=> 3
Which parts of each method are side-effects, and which are the "main" effect?
Source code distributed under the MIT license. Text and other assets copyright General Assembly, Inc., all rights reserved.