Test case details

Preparation Code

Test cases

Test #1

var Animal = function(name) {     this.name = name;     this.nick = null;     }; Animal.prototype.speak = function() {   alert(this.name + ' spoke'); }; Animal.prototype.setNick = function(a) {   this.nick = a; }; Animal.prototype.getNick = function() {   alert(this.nick); }; var cat = new Animal('garfield'); cat.speak(); cat.setNick('iring'); cat.getNick(); var dog = new Animal('odie'); dog.speak(); dog.setNick('iro'); dog.getNick(); cat.speak(); cat.setNick('iring2'); cat.getNick();

Test #2

var Animal = function(petName) {     return {       name: petName,       nick: null,       speak: function() {         alert(this.name + ' spoke');       },       setNick: function(a) {         nick = a;       },       getNick: function() {         alert(nick);       }     };     }; var cat = new Animal('garfield'); cat.speak(); cat.setNick('iring'); cat.getNick(); var dog = new Animal('odie'); dog.speak(); dog.setNick('iro'); dog.getNick(); cat.speak(); cat.setNick('iring2'); cat.getNick();

Test #3

var Animal = function(name) {     this.name = name;     this.nick = null;     this.speak = function() {       alert(this.name + ' spoke');     };     this.setNick = function(a) {       this.nick = a;     };     this.getNick = function() {       alert(this.nick);     };     }; var cat = new Animal('garfield'); cat.speak(); cat.setNick('iring'); cat.getNick(); var dog = new Animal('odie'); dog.speak(); dog.setNick('iro'); dog.getNick(); cat.speak(); cat.setNick('iring2'); cat.getNick();

Test #4

var Animal = {   name: name,   nick: null,   setName: function(petName) {     this.name = petName;   },   speak: function() {     alert(this.name + ' spoke');   },   setNick: function(a) {     this.nick = a;   },   getNick: function() {     alert(this.nick);   } }; var clone = (function() {   function Clone() {}   return function(obj) {     Clone.prototype = obj;     return new Clone();   }; }()); var cat = clone(Animal); cat.setName('garfield'); cat.speak(); cat.setNick('iring'); cat.getNick(); var dog = clone(Animal); dog.setName('odie'); dog.speak(); dog.setNick('iro'); dog.getNick(); cat.speak(); cat.setNick('iring2'); cat.getNick();