你不知道的 JavaScript 系列中( 21 ) -尽量不要使用 Object()/Function()/RegExp()

除非万不得已,否则尽量不要使用 Object()/Function()/RegExp()
var c = new Object();
c.foo = 'bar';
c; // {foo: 'bar'}

var d = {foo: 'bar'}
d; // {foo: 'bar'}

在实际情况没有必要使用 new Object() 来创建对象,因为这样无法像常量形式那样设定多个属性,而必须逐一设定

var e = new Function('a', 'return a * 2');
var f = function(a){return a * 2}
function g(a){ return a * 2}

构造函数 Function 只在少数情况下很有用,比如动态定义函数参数和函数体的时候,基本上不会通过这种方式来定义函数

var h = new RegExp('^a*b+', 'g');
var i = /^a*b+/g;

强烈建议使用常量形式来定义正则,这样不仅语法简单,执行效率也更高,因为JS引擎在代码执行前会对它们进行预编译和缓存。RegExp() 也是动态定义正则的时候才派上用场

原文地址:https://www.cnblogs.com/wzndkj/p/13844381.html