JSFace | var JSFacePerson = jsface.Class({
constructor: function(name) {
this.name = name;
},
setAddress: function(country, city, street) {
this.country = country;
this.city = city;
this.street = street;
}
});
var JSFaceFrenchGuy = jsface.Class(JSFacePerson, {
constructor: function(name) {
JSFaceFrenchGuy.$super.call(this, name);
},
setAddress: function(city, street) {
JSFaceFrenchGuy.$superp.setAddress.call(this, 'France', city, street);
}
});
var JSFaceParisLover = jsface.Class(JSFaceFrenchGuy, {
constructor: function(name) {
JSFaceParisLover.$super.call(this, name);
},
setAddress: function(street) {
JSFaceParisLover.$superp.setAddress.call(this, 'Paris', street);
}
});
var p1 = new JSFacePerson("John");
p1.setAddress("US", "MT", "CH");
var p2 = new JSFaceFrenchGuy("Leo");
p2.setAddress("MT", "CH");
var p3 = new JSFaceParisLover("Mary");
p3.setAddress("CH");
| ready |
my.Class | var MyPerson = my.Class({
constructor: function(name) {
this.name = name;
},
setAddress: function(country, city, street) {
this.country = country;
this.city = city;
this.street = street;
}
});
var MyFrenchGuy = my.Class(MyPerson, {
constructor: function(name) {
MyFrenchGuy.Super.call(this, name);
},
setAddress: function(city, street) {
MyFrenchGuy.Super.prototype.setAddress.call(this, 'France', city, street);
}
});
var MyParisLover = my.Class(MyFrenchGuy, {
constructor: function(name) {
MyParisLover.Super.call(this, name);
},
setAddress: function(street) {
MyParisLover.Super.prototype.setAddress.call(this, 'Paris', street);
}
});
var p4 = new MyPerson("John");
p4.setAddress("US", "MT", "CH");
var p5 = new MyFrenchGuy("Leo");
p5.setAddress("MT", "CH");
var p6 = new MyParisLover("Mary");
p6.setAddress("CH");
| ready |
John Resig Class | var JRPerson = JRClass.extend({
init: function(name) {
this.name = name;
},
setAddress: function(country, city, street) {
this.country = country;
this.city = city;
this.street = street;
},
sayHello: function() {
console.log('I am ' + this.name + '. My address is ' + this.country + ', ' + this.city + ', ' + this.street + '.');
}
});
var JRFrenchGuy = JRPerson.extend({
init: function(name) {
this._super(name);
},
setAddress: function(city, street) {
this._super('France', city, street);
}
});
var JRParisLover = JRFrenchGuy.extend({
init: function(name) {
this._super(name);
},
setAddress: function(street) {
this._super('Paris', street);
}
});
var p7 = new JRPerson("John");
p7.setAddress("US", "MT", "CH");
var p8 = new JRFrenchGuy("Leo");
p8.setAddress("MT", "CH");
var p9 = new JRParisLover("Mary");
p9.setAddress("CH");
| ready |
Klass | var EnderPerson = klass(function(name) {
this.name = name;
}).methods({
setAddress: function(country, city, street) {
this.country = country;
this.city = city;
this.street = street;
}
});
var EnderFrenchGuy = EnderPerson.extend(function(name) {}).methods({
setAddress: function(city, street) {
this.supr('France', city, street);
}
});
var EnderParisLover = EnderFrenchGuy.extend(function(name) {}).methods({
setAddress: function(street) {
this.supr('Paris', street);
}
});
var p10 = new EnderPerson("John");
p10.setAddress("US", "MT", "CH");
var p11 = new EnderFrenchGuy("Leo");
p11.setAddress("MT", "CH");
var p12 = new EnderParisLover("Mary");
p12.setAddress("CH");
| ready |
Classy | var ClassyPerson = Classy.$extend({
__init__: function(name) {
this.name = name;
},
setAddress: function(country, city, street) {
this.country = country;
this.city = city;
this.street = street;
}
});
var ClassyFrenchGuy = ClassyPerson.$extend({
__init__: function(name) {
this.$super(name);
},
setAddress: function(city, street) {
this.$super('France', city, street);
}
});
var ClassyParisLover = ClassyFrenchGuy.$extend({
__init__: function(name) {
this.$super(name);
},
setAddress: function(street) {
this.$super('Paris', street);
}
});
var p13 = new ClassyPerson("John");
p13.setAddress("US", "MT", "CH");
var p14 = new ClassyFrenchGuy("Leo");
p14.setAddress("MT", "CH");
var p15 = new ClassyParisLover("Mary");
p15.setAddress("CH");
| ready |
PTClass | var PTClassPerson = PTClass.create({
initialize: function(name) {
this.name = name;
},
setAddress: function(country, city, street) {
this.country = country;
this.city = city;
this.street = street;
}
});
var PTClassFrenchGuy = PTClass.create(PTClassPerson, {
initialize: function($super, name) {
$super(name);
},
setAddress: function($super, city, street) {
$super('France', city, street);
}
});
var PTClassParisLover = PTClass.create(PTClassFrenchGuy, {
initialize: function($super, name) {
$super(name);
},
setAddress: function($super, street) {
$super('Paris', street);
}
});
var p16 = new PTClassPerson("John");
p16.setAddress("US", "MT", "CH");
var p17 = new PTClassFrenchGuy("Leo");
p17.setAddress("MT", "CH");
var p18 = new PTClassParisLover("Mary");
p18.setAddress("CH");
| ready |
CoffeeScript Classes | var CoffeePerson = (function() {
function CoffeePerson(name) {
this.name = name;
}
CoffeePerson.prototype.setAddress = function(country, city, street) {
this.country = country;
this.city = city;
this.street = street;
};
return CoffeePerson;
})();
var CoffeeFrenchGuy = (function(_super) {
__extends(CoffeeFrenchGuy, _super);
function CoffeeFrenchGuy(name) {
CoffeeFrenchGuy.__super__.constructor.call(this, name);
}
CoffeeFrenchGuy.prototype.setAddress = function(city, street) {
return CoffeeFrenchGuy.__super__.setAddress.call(this, "France", city, street);
};
return CoffeeFrenchGuy;
})(CoffeePerson);
var CoffeeParisLover = (function(_super) {
__extends(CoffeeParisLover, _super);
function CoffeeParisLover(name) {
CoffeeParisLover.__super__.constructor.call(this, name);
}
CoffeeParisLover.prototype.setAddress = function(street) {
return CoffeeParisLover.__super__.setAddress.call(this, "Paris", street);
};
return CoffeeParisLover;
})(CoffeeFrenchGuy);
var p1 = new CoffeePerson("John");
p1.setAddress("US", "MT", "CH");
var p2 = new CoffeeFrenchGuy("Leo");
p2.setAddress("MT", "CH");
var p3 = new CoffeeParisLover("Mary");
p3.setAddress("CH");
| ready |
augment | var AugmentPerson = Object.augment(function() {
this.setAddress = function(country, city, street) {
this.country = country;
this.city = city;
this.street = street;
};
return AugmentPerson;
function AugmentPerson(name) {
this.name = name;
}
});
var AugmentFrenchGuy = AugmentPerson.augment(function(AugmentPerson, uber) {
this.setAddress = function(city, street) {
uber.setAddress.call(this, "France", city, street);
};
return AugmentFrenchGuy;
function AugmentFrenchGuy(name) {
AugmentPerson.call(this, name);
}
});
var AugmentParisLover = AugmentFrenchGuy.augment(function(AugmentFrenchGuy, uber) {
this.setAddress = function(street) {
uber.setAddress.call(this, "Paris", street);
};
return AugmentParisLover;
function AugmentParisLover(name) {
AugmentFrenchGuy.call(this, name);
}
});
var p1 = new AugmentPerson("John");
p1.setAddress("US", "MT", "CH");
var p2 = new AugmentFrenchGuy("Leo");
p2.setAddress("MT", "CH");
var p3 = new AugmentParisLover("Mary");
p3.setAddress("CH");
| ready |
Ext JS | Ext.define('ExtPerson', {
constructor: function(name) {
this.name = name;
},
setAddress: function(country, city, street) {
this.country = country;
this.city = city;
this.street = street;
}
});
Ext.define('ExtChinaGuy', {
extend: 'ExtPerson',
constructor: function() {
this.callParent(arguments);
},
setAddress: function(city, street) {
this.callParent(['China', city, street]);
}
});
Ext.define('ExtBeiJingLover', {
extend: 'ExtChinaGuy',
constructor: function(name) {
this.callParent(arguments);
},
setAddress: function(street) {
this.callParent(['BeiJing', street]);
}
});
var p1 = new ExtPerson("John");
p1.setAddress("US", "MT", "CH");
var p2 = new ExtChinaGuy("Leo");
p2.setAddress("MT", "CH");
var p3 = new ExtBeiJingLover("Mary");
p3.setAddress("CH");
| ready |
OxygenJS | var Person = Oxy.define({
constructor: function(name) {
this.name = name;
},
setAddress: function(country, city, street) {
this.country = country;
this.city = city;
this.street = street;
}
});
var ChinaGuy = Oxy.define({
extend: Person,
constructor: function() {
Person.call(this)
},
setAddress: function(city, street) {
ChinaGuy.$super.setAddress('China', city, street);
}
});
var BeiJingLover = Oxy.define({
extend: ChinaGuy,
constructor: function(name) {
ChinaGuy.call(this, name);
},
setAddress: function(street) {
BeiJingLover.$super.setAddress('BeiJing', street);
}
});
var p1 = new Person("John");
p1.setAddress("US", "MT", "CH");
var p2 = new ChinaGuy("Leo");
p2.setAddress("MT", "CH");
var p3 = new BeiJingLover("Mary");
p3.setAddress("CH");
| ready |
OxygenJS(augment style) | var Person = Oxy.extend(Object, function() {
this.setAddress = function(country, city, street) {
this.country = country;
this.city = city;
this.street = street;
}
return Person;
function Person(name) {
this.name = name;
}
});
var ChinaGuy = Oxy.extend(Person, function(Person, parent) {
this.setAddress = function(city, street) {
parent.setAddress('China', city, street);
}
return ChinaGuy;
function ChinaGuy() {
Person.call(this)
}
});
var BeiJingLover = Oxy.extend(ChinaGuy, function(ChinaGuy, parent) {
this.setAddress = function(street) {
parent.setAddress('BeiJing', street);
}
return BeijingLover;
function BeijingLover(name) {
ChinaGuy.call(this, name);
}
});
var p1 = new Person("John");
p1.setAddress("US", "MT", "CH");
var p2 = new ChinaGuy("Leo");
p2.setAddress("MT", "CH");
var p3 = new BeiJingLover("Mary");
p3.setAddress("CH");
| ready |