Skip to main content

Better object oriented pattern in javascript in so mistakes call be avoided in a better way very simple

check the code below

--------------------------------------------------------

https://stackblitz.com/edit/js-9vhtdm?file=index.js

 //better ES5 object oriented in es5

//rules 
//1. you can pass values in any order
//2. default value
//3. handle undefined in a better way  throw new Error





function Hero(obj=undefined)
{
    //if object is null return throw a new Error
    if(obj===undefined)
    {
      throw new Error("Empty Object");
    }
    const {name,age}=obj
    this.name=name;
    this.age=age;
}

//now extend myhero class
function Myhero(obj=undefined)
{
    //now call super class or parent class must
    Hero.call(this,obj);
}
let P=Myhero.prototype=Object.create(Hero.prototype);
P.constructor=Myhero;
P.sayHello=function()
{
    return `my name is => ${this.name} and my age is ${this.age}`;
}

//when u create a instance of Myhero class you can pass values using a object biggest benfit is you can pass value in any order
let H1=new Myhero({name:"manish",age:30});
console.log(H1.sayHello())


let H2=new Myhero({age:29,name:"deepak"});
console.log(H2.sayHello())
//--------------------------------------------ES6 way

class Monster
{
  constructor(obj=undefined)
  {
      if(obj===undefined)
      {
        throw new Error("Empty Object");
      }
      const {name,age}=obj
      this.name=name;
      this.age=age;
  }

}
console.log("---------------------------------------------------------------");
class XMonster extends Monster
{
    constructor(obj=undefined)
    {
       super(obj);
    }
    
   sayHello()
   {
     return `my name is => ${this.name} and my age is ${this.age}`;
   }
}

let M1=new XMonster({name:"manishX",age:30});
console.log(M1.sayHello())


let M1=new XMonster({age:29,name:"deepakY"});
console.log(M1.sayHello())

Comments

Popular posts from this blog

Better Memory management with PixiJS or How to manage cpu and cpu memory in PixiJS.

PixiJS is my favorite framework when i am looking for a web games specially for mobile or desktop  PixiJS is fast blazing fast and you can get a decent FPS even on older device.   so here is my optimization techniques for PixiJs 1. manage your sprites in a better way use spritesheet to reduce the draw calls create big sprite sheet which contain multiple sprites can be draw in gpu with a single draw call. use TexturePacker  https://www.codeandweb.com/texturepacker  best tool when its comes to spritesheet 2. for floating point calculation round off calculation for example let  speed = 0.75 ; let  position = 100 ; console . log ( Math . round ( speed * position )) 3. don't create very big canvas when u need a big canvas size game just try to create a small canvas and translate it. 4. its very important one managing TextureCache in memory you can get all TextureCache list by using  Object.entries(PIXI.utils.TextureCache); so even you use ap...

adding particles Effect in pixijs using https://pixijs.io/pixi-particles-editor/

adding particle in pixijs is very easy using the below tool more information can be found below https://github.com/pixijs/pixi-particles https://pixijs.io/pixi-particles-editor/ required packages  /// < reference path = "node_modules/pixi-particles/ambient.d.ts" /> import 'pixi-particles' code of particle delcare a     global variable   private emitter ?: Emitter ; const img = PIXI . Texture . from ( "./assets/images/particle.png" ); this . emitter = new Emitter ( this ,[ img ],{ "alpha" : { "start" : 0.62 , "end" : 0.39 }, "scale" : { "start" : 0.1 , "end" : 0.9 , "minimumScaleMultiplier" : 1.25 }, "color" : { "start" : "#ffff8f" , "end" : ...