JavaScript Class
/** | |
* Combination Constructor/Prototype Pattern | |
*/ | |
//constructor | |
function Something(name){ | |
//properties | |
this.name = name; | |
} | |
//prototype | |
Something.prototype = { | |
//methods | |
sayhello:function(){ | |
console.log('hello '+this.name); | |
}, | |
sayhi:function(){ | |
console.log('hi '+this.name); | |
} | |
} | |
var obj = new Something('souparno'); | |
var obj2 = new Something('zacks'); | |
/********************EOF*******************************/ | |
/** | |
* Dynamic Prototype Pattern | |
*/ | |
//constructor | |
function Something(name){ | |
//properties | |
this.name = name; | |
//methods | |
if(typeof this.sayhello != "function"){ | |
Something.prototype.sayhello = function(){ | |
console.log('hello '+this.name); | |
}; | |
} | |
if(typeof this.sayhi != "function"){ | |
Something.prototype.sayhello = function(){ | |
console.log('hi '+this.name); | |
}; | |
} | |
} | |
var obj = new Something('souparno'); | |
var obj2 = new Something('zacks'); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This comment has been minimized.
souparno commentedFeb 2, 2014
(function(){
this.Class=function(){};
Class.Create=function(property){
var _property={};
for(var p in property)
{
if(p === "init") this.Class=property[p];
else _property[p]=property[p];
};
this.Class.prototype=_property;
return this.Class;
};
}());
var something=Class.Create({
});
var obj=new something();
obj.sayhello();
obj.sayhi();