Test cases
Test #1 Title *
Async
Code * 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" );
Test #2 Title *
Async
Code * 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" );
Title *
Async
Code * 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" );
Title *
Async
Code * 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" );
Title *
Async
Code * 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" );
Title *
Async
Code * 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" );
Title *
Async
Code * var Person = Object .augment (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 FrenchGuy = Person .augment (function (Person, uber ) {
this .setAddress = function (city, street ) {
uber.setAddress .call (this , "France" , city, street);
};
return FrenchGuy ;
function FrenchGuy (name ) {
Person .call (this , name);
}
});
var ParisLover = FrenchGuy .augment (function (FrenchGuy, uber ) {
this .setAddress = function (street ) {
uber.setAddress .call (this , "Paris" , street);
};
return ParisLover ;
function ParisLover (name ) {
FrenchGuy .call (this , name);
}
});
var p1 = new Person ("John" );
p1.setAddress ("US" , "MT" , "CH" );
var p2 = new FrenchGuy ("Leo" );
p2.setAddress ("MT" , "CH" );
var p3 = new ParisLover ("Mary" );
p3.setAddress ("CH" );