Object(..)、Function(..) 和 RegExp(..)

Object(..)、Function(..) 和 RegExp(..)

除非万不得已,否则尽量不要使用 Object(..)/Function(..)/RegExp(..):

Object(..)、Function(..) 和 RegExp(..)

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

构造函数 Function 只在极少数情况下很有用,比如动态定义函数参数和函数体的时候。不要把 Function(..) 当作 eval(..) 的替代品,你基本上不会通过这种方式来定义函数。

强烈建议使用常量形式(如 /^a*b+/g)来定义正则表达式,这样不仅语法简单,执行效率 也更高,因为 JavaScript 引擎在代码执行前会对它们进行预编译和缓存。与前面的构造函 数不同,RegExp(..) 有时还是很有用的,比如动态定义正则表达式时:

Object(..)、Function(..) 和 RegExp(..)

上述情况在 JavaScript 编程中时有发生,这时 new RegExp("pattern","flags") 就能派上用 场。


分享到:


相關文章: