All Projects → nicolas-van → Ring.js

nicolas-van / Ring.js

Licence: mit
Ring.js - JavaScript Class System with Multiple Inheritance

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Ring.js

Stampit
OOP is better with stamps: Composable object factories.
Stars: ✭ 3,021 (+1254.71%)
Mutual labels:  object-oriented, class
BashClass
BashClass is an Object Oriented Programming language that compiles to BASH 4.4
Stars: ✭ 40 (-82.06%)
Mutual labels:  class, object-oriented
Struct2ts
Generate Typescript classes/interfaces out of Go structs
Stars: ✭ 116 (-47.98%)
Mutual labels:  class
Lw oopc
modified from http://sourceforge.net/projects/lwoopc/
Stars: ✭ 159 (-28.7%)
Mutual labels:  object-oriented
Eclipse Collections
Eclipse Collections is a collections framework for Java with optimized data structures and a rich, functional and fluent API.
Stars: ✭ 1,828 (+719.73%)
Mutual labels:  object-oriented
Doodle
A pure Kotlin UI framework for the Web.
Stars: ✭ 127 (-43.05%)
Mutual labels:  object-oriented
React Universal Hooks
🎉 React Universal Hooks : just use****** everywhere (Functional or Class Component). Support React DevTools!
Stars: ✭ 148 (-33.63%)
Mutual labels:  class
Papers Notebook
📄 🇨🇳 📃 论文阅读笔记(分布式系统、虚拟化、机器学习)Papers Notebook (Distributed System, Virtualization, Machine Learning), created by @gaocegege
Stars: ✭ 1,678 (+652.47%)
Mutual labels:  class
Dao
Dao Programming Language
Stars: ✭ 183 (-17.94%)
Mutual labels:  object-oriented
Kinx
Looks like JavaScript, feels like Ruby, and it is a script language fitting in C programmers.
Stars: ✭ 134 (-39.91%)
Mutual labels:  object-oriented
Dumpclass
Dump classes from running JVM process.
Stars: ✭ 156 (-30.04%)
Mutual labels:  class
Db
Newt DB is a Python object-oriented database with JSONB-based access and search in PostgreSQL
Stars: ✭ 132 (-40.81%)
Mutual labels:  object-oriented
Algo ds notes
It is a repository that is a collection of algorithms and data structures with implementation in various languages.
Stars: ✭ 1,897 (+750.67%)
Mutual labels:  object-oriented
Classanalyzer
A Java Class File Disassembler
Stars: ✭ 148 (-33.63%)
Mutual labels:  class
Python And Oop
Object-Oriented Programming concepts in Python
Stars: ✭ 123 (-44.84%)
Mutual labels:  class
Elena Lang
ELENA is a general-purpose language with late binding. It is multi-paradigm, combining features of functional and object-oriented programming. Rich set of tools are provided to deal with message dispatching : multi-methods, message qualifying, generic message handlers, run-time interfaces
Stars: ✭ 161 (-27.8%)
Mutual labels:  object-oriented
Ddd On Scala
DDD sample implementation by Scala.
Stars: ✭ 113 (-49.33%)
Mutual labels:  object-oriented
Cohesion
A tool for measuring Python class cohesion.
Stars: ✭ 129 (-42.15%)
Mutual labels:  class
Ood Principles In Swift
💎 The Principles of OOD (SOLID) based on Uncle Bob articles.
Stars: ✭ 1,710 (+666.82%)
Mutual labels:  object-oriented
Bigint
Arbitrary-sized integer class for C++
Stars: ✭ 189 (-15.25%)
Mutual labels:  class

Ring.js

Build Status npm version

Ring.js is a class system in JavaScript allowing multiple inheritance.

var Human = ring.create({
  talk: function() {
    return "hello";
  },
});

var Spider = ring.create({
  climb: function() {
    return "climbing";
  },
});

var SpiderMan = ring.create([Spider, Human], {
  talk: function() {
    return this.$super() + ", my name is Peter Parker";
  }
});

var spiderman = new SpiderMan();
console.log(spiderman.talk());

Its advantages:

  • Stop fighting against JavaScript prototype-based object oriented system. Use a class system like you would in Java, Python, or basically any well-known language.
  • Available in the browser or in node.js. Also works with require.js.
  • The inheritance system is inspired by Python, one of the best multiple inheritance system ever.
  • Provides compatibility with other JavaScript class systems, like CoffeeScript or Backbone.
  • Licensed under the MIT license.
  • Damn, multiple inheritance just rocks!

To get started, read the tutorial.

There is also a FAQ available here.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].