Skip to main content

function composition (function programming) over inheritance javascript with example

working link

https://stackblitz.com/edit/js-d57tvk


more about

https://www.youtube.com/results?search_query=functional+programming+vs+object+oriented+javascript


a better link

https://www.youtube.com/watch?v=7HolHe7Gqbw&t=263s


example :-

//function composition (function programming) over inheritance
//create some global function every thing except number and string are object in javascript


//@function showName----------------------------
const showName=(state)=>({
getfullName()
{
return state.name+" "+state.last;
}
});
//@function showSalary----------------------------
const showSalary=(state)=>(
{
bonus:800,
getSal()
{
return state.sal*12+this.bonus;
}
}
)
//@function what emp do
const WhatHeDo=(state)=>(

{
getType()
{
switch(state.type) {
case "it":
this.type="you are a it emp";
break;
case "game":
this.type="you are a game developer"
break;
default:
// code block
}
return this.type;
}
}
)

//emp class which is function as we know every function is a constructor in javascript
function emp(_name,_last)
{
let objRef={
name:_name,
last:_last
}
return Object.assign(objRef,showName(objRef));
}

//create a new class itEmp which hold some properties
function itEmp(_sal,_type)
{
let objRef={
sal:_sal,
type:_type
}
return Object.assign(objRef,showSalary(objRef),WhatHeDo(objRef));
}

//copy or you can say copy properties from source to destination
//where source is emp calss and destination is itEmp class

//first object
let itemp=Object.assign(itEmp(2000,"it"),emp("manish","chauhan"))
console.log(itemp.getfullName())
console.log(itemp.getSal())
console.log(itemp.getType());


//second object
let gameemp=Object.assign(itEmp(2100,"game"),emp("sachin","chauhan"))
console.log(gameemp.getfullName())
console.log(gameemp.getSal());
console.log(gameemp.getType());

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" : ...