JSFiddle - React, Tailwind, and code Playground

by Ryan Morris

JavaScript

/**
 * Smart Stub (module)
 * 
 * Write a function stub() that keeps track of it's own usage
 * It should keep track of call count and arguments used in each call.
 *
 * stub.count();
 * - returns the current call count. The count starts at 0 and becomes 1 once it is called one time. 
 *
 * stub.args(i);
 * - returns an array of arguments that were used at that call in the stack. 
 * - stub.args(1) would return the first-ever arguments passed to the function; during the first call
 * 
 * stub.reset();
 * - sets the count back to 0 and empties any arguments it has been tracking
 *
 * The actual "count" and "arguments" data should not be publicly accessible except through the methods above.
 *
 * Hint: 
 * - Need privacy. You'll be using an IFFE and/or closures
 * - stub() is a function with methods... not an object
 *
 * Example usage:
 * 	stub();
 * 	stub(1);
 * 	stub(2,3);
 * 	stub.count(); // 3
 * 	stub.args(1); // undefined
 * 	stub.args(3); // [2,3]
 * 	stub.reset();
 * 	stub.count(); // 0
 */