Comments (7)
Hello there,
The documentation that exists is in the Wiki:
https://github.com/kikito/middleclass/wiki
Is this enough for you, or do you need more guidance?
from middleclass.
Thanks! I found the documentation in the wiki and read it, but didn't find any information on how inheritance works.
from middleclass.
I'm afraid I will have to ask you to be more concise. Are you looking for a description of inheritance as a concept in object orientation? Are you asking about the implementation details of that concept in the context of this library? Or is it something else?
from middleclass.
I'm looking for precise usage instructions on inheritance in middleclass:
- What is the Syntax for inheritance? From the quick example, my guess would be that
class('A', B)
sets up A to be a subclass of B. But it took me a while to find this, maybe it could be explicitly stated somewhere else? - How is initialization handled in class hierarchies? Is the constructor of parent classes automatically called?
- Is there a way to access a classes or an instances parent class/instance? E.g. A.super?
from middleclass.
The standard way to do inheritance is class('A', B)
. In addition to that, you can also do B:subclass('A')
. Both expressions will return A (a subclass of B). A.super
will return B
.
When you call A:new(), only A:initialize()
gets called - the constructor of B is not called by default. There is no super
, instead you have to use an explicit self
:
function A:initialize()
...
B.initialize(self, ...)
...
end
The same applies for non-constructor methods - there is no super
keyword-like construction, so you must use explicit self calls.
You may find an example of all this in the Quick Example and on the Readme. Do you feel they are not clear enough?
from middleclass.
Hey,
that's nice! It clarified a lot of things for me. Indeed, I feel that the Wiki should contain a part exactly like your comment above, to explicitly explain how inheritance works.
from middleclass.
Added the notes to the Quick intro pages. Closing down this issue.
from middleclass.
Related Issues (20)
- Wiki doesn't say that you can create instances with __call HOT 5
- class.name doesn't work HOT 4
- Documentation? HOT 1
- __newindex declaration makes it impossible to have public attributes HOT 5
- What is the proper means of creating a module out of a middleclass class hierarchy HOT 3
- Sample not working HOT 1
- Defining an instance method "name" HOT 4
- How to split a big class to several files? HOT 2
- There's a bug in line 82
- Make isSubclassOf and isInstanceOf accept strings HOT 4
- Implementing destructors HOT 1
- Maybe somekind offtop, but how to generally determine if variable is any class (and not primitive etc) before checking if it's instance of class? HOT 7
- properties, sorry to ask lol HOT 1
- Make it possible to include superclasses and mixins by string names HOT 2
- Don't understand how to work with metamethods :( HOT 5
- Question regarding method inheritance and overide when there are parameters HOT 4
- aClass.subclasses never used? Why this field is always empty? HOT 2
- `includes` method to check if a class includes a mixin HOT 1
- Static inheritance seems broken
- Hot reloading of instances and local up values
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from middleclass.