你不知道的 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() 也是动态定义正则的时候才派上用场