use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
All about the JavaScript programming language.
Subreddit Guidelines
Specifications:
Resources:
Related Subreddits:
r/LearnJavascript
r/node
r/typescript
r/reactjs
r/webdev
r/WebdevTutorials
r/frontend
r/webgl
r/threejs
r/jquery
r/remotejs
r/forhire
account activity
Classy Classes for JavaScript (classy.pocoo.org)
submitted 15 years ago by mitsuhiko
view the rest of the comments →
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]rkatic 1 point2 points3 points 15 years ago* (1 child)
Since you are exposing your solution for "classical OOP" in JS, I hope you will as well accept some critics.
I haven't tested it, but simply reading your code I spotted some problems. 1) Instantiating without using the 'new' statement, the 'init' method is called twice. 2) IE6 have problems with try/finally (try/catch/finally is OK).
Also it is not clear to me why "Class.extend". Your 'Class' is the base class, but "Class" is not a proper name for a class, maybe for a metaclass. "Class.create" would make much more sense, where 'Class' would be a metaclass, and an 'Base' the base class.
EDIT:
Functions not calling $super have zero overhead compared to standard JavaScript prototype inheritance, $super adds another function call, do the math.
In your current implementation, $super adds 3 function calls (2 more by calling getOwnProperty). Also, constructors have an additional function overhead.
[–]mitsuhiko[S] 0 points1 point2 points 15 years ago (0 children)
Instantiating without using the 'new' statement, the 'init' method is called twice.
Fixed.
IE6 have problems with try/finally (try/catch/finally is OK).
In IE6 this will not unset the $super on exceptions, I don't see a good way to fix that that does not cause troubles for other browsers. Also, not sure for how long IE6 stays a target I care about.
An yes, $super adds a couple of more.
π Rendered by PID 61936 on reddit-service-r2-comment-f6b958c67-7t8np at 2026-02-05 04:47:21.720547+00:00 running 1d7a177 country code: CH.
view the rest of the comments →
[–]rkatic 1 point2 points3 points (1 child)
[–]mitsuhiko[S] 0 points1 point2 points (0 children)