скажите пожалуйста, в чем разница между этими тремя выражениями:
console.log( (Function.prototype.constructor.apply(Function.prototype, ['a', 'return a + 1;']))(1) );
console.log( (new Function('a', 'return a + 1;'))(1) );
console.log( (Function.prototype.constructor('a', 'return a + 1;'))(1) );
и в каких случаях что лучше использовать?