HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
prototypejs
prototype
JavaScript2010–2023
prototypejs / prototype

prototype

Prototype JavaScript framework

6Distinct people
6Mentions
0Explicit recommenders
3.5KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Prototype JavaScript framework

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 11:56:56 AM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year6 dated mentions

Observed mentions: 2010-01-12 04:18:57 UTC to 2023-12-16 15:43:37 UTC.

0122010-01-01 00:00:00 UTC to 2011-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments20102011-01-01 00:00:00 UTC to 2012-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-01-01 00:00:00 UTC to 2013-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments2013-01-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments20162017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments2023

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20102010-01-01 00:00:00 UTC2011-01-01 00:00:00 UTC202
20112011-01-01 00:00:00 UTC2012-01-01 00:00:00 UTC000
20122012-01-01 00:00:00 UTC2013-01-01 00:00:00 UTC211
20132013-01-01 00:00:00 UTC2014-01-01 00:00:00 UTC101
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC000
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC000
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC000
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC000
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC000
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC000
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC000
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC000
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC000
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC110

What Hacker News says

6 sources
> I'm not sure if javascript saves the names of the function's parameters to be available for reflection Yes an no. YOu can't access it directly, but if you call toString() on a function you'll get is source code as a string so you can parse it. Prototype do that to handle the special $super parameter [0]. But most modern minifier rename function parameters and local variables, so it's not a good idea. [0] https://github.com/sstephenson/prototype/blob/master/src/pro...
In GorillaScript
Check out the code in the open source project fabric.js http://fabricjs.com/ . It's written by Juriy Zaytsev who was a maintainer for prototype.js. I find the code useful for learning advanced object oriented JavaScript because: 1) It's self contained. No dependencies on third party OO libraries or frameworks. 2) The code is very readable. 3) It's a canvas library, so it's fun to work with if you're into graphics and visualizations. 4) You'll learn a lot about how many JS projects are built, documented, and tested, if you get it to build and the tests running on node.js. Here is what I would do: 1) Check out the project and get it building. 2) Read all the files in the util folder. You'll see a lot of methods added to Object and Array. 3) Take a look at lang_class.js: https://github.com/kangax/fabric.js/blob/master/src/util/lan... This is
Read the rest
how he does OO JS. It's very similar to John Resig's OO classes: http://ejohn.org/blog/simple-javascript-inheritance/ and somewhat different to prototype's classes: https://github.com/sstephenson/prototype/blob/master/src/pro... 4) Then take a look at the base class: https://github.com/kangax/fabric.js/blob/master/src/object.c... and an inherited class: https://github.com/kangax/fabric.js/blob/master/src/line.cla... 5) Search for instances of the "bind" method, and see how they're used. Of course, as you're doing all this, you'll need to experiment with simple language constructs in your browser's console to test what you think you know, and you'll want to read some chapters from a thorough JS book like, JavaScript the Definitive Guide http://shop.oreilly.com/product/9780596805531.do Finally, this is just a personal opinion, but I don't like Crokford's chapter on OO JS. I just don't think it presents your options well. If you decide to write a large project in JS using OO techniques, I think you'd be better off utilizing an OO library, compiler, or framework like TypeScript, Google Closure, Prototype or CoffeeScript, than you would charging forward armed with Crokford's chapter on OO.
In Ask HN: Learning to write good JavaScript
The prototype source[1] has the answer, and it does not curry the function. In fact it does not even perform real partial application. It just returns a closure that has references to the original function and the argument(s) you asked it to partially apply. When you call the resulting function it merges the new arguments and calls the original function. [1] http://github.com/sstephenson/prototype/blob/master/src/lang... Conceptually it's the same as partial application so most of us would overlook that detail, but it is nowhere near currying. See Haskell if you're interested in these concepts.
In The Four Cs of JavaScript
First of all, thanks for kind words. I'm glad you found this post useful. I think I should have given more attention to use cases of `delete` before delving into all the details of how it works :) My bad. I wouldn't say using `delete` is almost always the wrong approach, but it is certainly often misunderstood. There are valid use cases where one needs to delete a property, usually before iterating over an object (and performing some operation on each of the remaining properties), or when using `in` operator to detect property existence. Note that simply assigning `undefined` doesn't delete property — it is still visible during iteration or when inspecting object with `in`/`Object#hasOwnProperty`. In practice, I immediately think of event abstraction, where `delete` is often useful. In fact, jQuery uses it just for this kind of purpose —
Read the rest
http://github.com/jquery/jquery/blob/master/src/event.js#L15.... In Prototype.js, there are also a couple of places where we use `delete` (such as to delete a property from an object for some special purpose (take care of IE bug) and then iterate over the remaining properties of an object — http://github.com/sstephenson/prototype/blob/master/src/dom/...) The idea was to explain what can and can not be deleted; that deleting variables is useless (and even not future-compatible), unless those are declared from within eval (very unlikely); that deleting host objects is dangerous. Everything else — i.e. deleting user-defined object properties — can and should be done in the right context ;)
In Understanding delete in Javascript

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.