Given a string describing a Javascript function, convert it to a Javascript function

前端 未结 8 1056
广开言路
广开言路 2020-11-27 04:38

Say I\'ve got a Javascript string like the following

var fnStr = \"function(){blah1;blah2;blah3; }\" ;

(This may be from an expression the

8条回答
  •  情话喂你
    2020-11-27 05:01

    Here's what I use for simple cases:

    // an example function
    function plus(...args) {
        return args.reduce( (s,v) => s+v, 0 );
    }
    
    // function to string
    let str = plus.toString();
    
    // string to function
    let copy = new Function('return ' + str)();
    
    // tests
    console.assert(plus.name == 'plus');
    console.assert(copy.name == 'plus');
    console.assert(plus.constructor == Function);
    console.assert(copy.constructor == Function);
    console.assert(plus(1,2,3,4) === copy(1,2,3,4));
    console.assert(plus.toString() === copy.toString());
    

提交回复
热议问题