Working of javascript inline functions -


i not able grasp how function(match, p1, p2) working.

what use of match parameter? code breaks if don't write match parameter.

function incrementstring(input) {     if (isnan(parseint(input[input.length - 1]))) return input + '1';     return input.replace(/(0*)([0-9]+$)/, function(match, p1, p2) {         var = parseint(p2) + 1;         return up.tostring().length > p2.length ? p1.slice(0, -1) + : p1 + up;     }); } 

p.s: new entirely using js development. however, have been working on jsf , java since past few years.

from mdn:

str.replace(regexp|substr, newsubstr|function[, flags]) 

in case, can see 2 arguments passed replace, regular expression literal , function expression. that's:

str.replace(regexp, function) 

and mdn tells are:

function (replacement)
a function invoked create new substring (to put in place of substring received parameter 1). arguments supplied function described in "specifying function parameter" section below.

and

the arguments function follows:

etc. etc. won't quote entire table.

if leave match argument out of parameter list, values assigned p1 , p2 first , second argument instead of second , third. won't values need.

it taking code:

function call_with_one_two_three(f) {     f(1,2,3); }  call_with_one_two_three(function (one, two, three) {     alert(two + three); }); 

and deciding since weren't using one didn't need it:

function call_with_one_two_three(f) {     f(1,2,3); }  call_with_one_two_three(function (two, three) {     alert(two + three); }); 

that giving two + three 3.

in short: the position of arguments matters (and name doesn't).


Comments

Popular posts from this blog

python - pip install -U PySide error -

arrays - C++ error: a brace-enclosed initializer is not allowed here before ‘{’ token -

cytoscape.js - How to add nodes to Dagre layout with Cytoscape -