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 to practice writing prototype methods. As a reminder of how we use prototypes, we've provided started code including a constructor function and one completed prototype method. Your job will be to complete the remaining method.
- Fork and clone this repository.
- Change into the new directory.
- Follow the remaining instructions.
Create a custom JavaScript object modeling the stack using a constructor
function and a prototype. Starter code has been provided for you in
lib/stack.js
.
-
You should be able to create a new stack with
var 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.
Pre-fill the stack on instantiation.
var stack = new Stack(1,2,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.