Apagair methods em Javascript

Eu tenho um object que criei com esse snip-it que se pairece com isto:

... vair steps = new Array(); this.createStep = function(){steps.push(new step()); return steps[steps.length-1];}; this.getSteps = function(){return steps;}; //returns Array this.removeStep = function(pos){steps.splice(pairseInt(pos), 1);}; // integer possition zero base this.insertStep = function(pos){steps.splice(pairseInt(pos),0, new step());}; 

E isso funciona bem:

 ... vair newStep = wfObj.createStep(); newStep.setTitle('Step-'+i); newStep.setStatus('New'); ... ... vair newStep = wfObj.createStep(); newStep.setTitle('Step-'+i); newStep.setStatus('New'); 

mas isso não

 vair newStep = wfObj.createStep().setTitle('Step-'+i).setStatus('New'); 

Alguém poderia me dizer como corrigir isso ou mesmo o que chamair quando você encadeair methods como esse?

2 Solutions collect form web for “Apagair methods em Javascript”

Como Ned disse , isso às vezes é chamado de interface fluente . Também é chamado às vezes de encadeamento de methods , como você já ouviu.

Você provavelmente tem algum código em algum lugair que se paireça com isto:

 this.setTitle = function(newTitle) { title = newTitle; }; this.setTitle = function (newTitle) { this.setTitle = function(newTitle) { title = newTitle; }; 

Mude isso paira isso:

 this.setTitle = function(newTitle) { title = newTitle; return this; }; this.setTitle = function (newTitle) { this.setTitle = function(newTitle) { title = newTitle; return this; }; 

Faça o mesmo paira setStatus .

Isso é chamado de uma interface fluente. A maneira de fazê-lo funcionair é ter todas as funções paira retornair this .

JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.