Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sporto/planetproto
Understanding JavaScript Prototypes - Workshop
https://github.com/sporto/planetproto
Last synced: about 2 months ago
JSON representation
Understanding JavaScript Prototypes - Workshop
- Host: GitHub
- URL: https://github.com/sporto/planetproto
- Owner: sporto
- Archived: true
- Created: 2014-05-16T09:38:15.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2017-06-05T13:08:04.000Z (over 7 years ago)
- Last Synced: 2024-10-16T23:28:02.912Z (about 2 months ago)
- Language: JavaScript
- Size: 368 KB
- Stars: 221
- Watchers: 8
- Forks: 58
- Open Issues: 12
-
Metadata Files:
- Readme: readme.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
- awesome-workshopper - planetproto
README
Understanding JavaScript Prototypes - Workshop
## Mission
The goal of this workshop is to help you understand the object model in Javascript by learning how prototypes work.
Most guides / tutorials start explaining JavaScript objects by going directly to ‘__constructor functions__’, this workshop is different, it starts simple by explaining prototype chains and building from there.
**Please read the exercises thoroughly and follow all conditions, they are there to help you learn!**
## What you will learn
- What are prototypes chains
- Message delegation in a prototype chain
- What are function constructors
- What are function prototypes and how to work with them## Installation & Update
```
$ npm install -g planetproto@latest
```Some npm installations require use of `sudo` in the above command. Recommend to instead [reinstall node/npm so you don't need sudo](https://gist.github.com/isaacs/579814).
## Usage Instructions
#### 1. Selecting a problem to work on
Once the workshop is installed, run `planetproto` to print a menu
where you can select a problem to work on.```
$ planetproto
```Problems are listed in rough order of difficulty. You are advised to complete them in order, as later problems
will build on skills developed by solving previous problems.#### 2. Writing your solution
Once you have selected a problem, the workshop will remember which problem you are working on.
Using your preferred editor, simply create a file to write your solution in. Most problems will
supply some boilerplate with which to get started.Many challenges will ask you to make a 'claim'. We have provided `claim` as a global function.
To make a claim write `claim(actual, expected)`, e.g.:```js
claim(1 === 1, true);
```
#### 3. Verifying your solutionYour solution will be verified against the output of the 'official' solution.
If all of the output matches, then you have successfully solved the problem!```
$ planetproto verify mysolution.js
```## Stuck?
Feedback and criticism is welcome, please log your troubles in [issues](https://github.com/sporto/planetproto/issues).
## Development
Run `node planetproto.js` to run the workshop
Run `node planetproto.js verify 010.js` to verify a submission## Thanks rvagg
This tutorial was built using rvagg's [workshopper](https://github.com/rvagg/workshopper) framework.
## Licence
MIT
Robot designed by Ricardo Moreira from the Noun Project