请在这里查看代码
if (process.env.NODE_ENV !== 'production') {
if ('function' === typeof Object.freeze) {
Object.keys(self._routes).forEach(function freezeRoute(name) {
var route = self._routes[name];
Object.freeze(route.config);
Object.freeze(route.keys);
Object.freeze(route);
});
Object.freeze(self._routes);
}
}
为什么在非生产模式下冻结。是否可以在开发过程中验证它是否未被修改,但是可以避免生产期间的任何运行时成本?
是的,这正是在提交中添加了此功能的原因:
我们用于
Object.freeze
冻结路由器和路由非生产环境的对象,以确保这些对象的不变性。对于生产环境,建议在构建过程中使用诸如envify和uglify之类的工具来去除[非]生产专用代码,以提高性能。
我们通常使用
if (process.env.NODE_ENV !== 'production')
环绕Object.freeze()
,以便您可以使用各种工具为不同的环境构建代码:
他们这样做的原因是因为Object.freeze
当时速度很慢-在这一点上,对性能的影响Object.freeze
已经大大减轻了(至少在V8中)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句