Abh*_*war 18 javascript ecmascript-6 reactjs
我正在通过反应库代码.经过一段时间后,我发现了一段特殊的代码,我无法理解它的意义.有人可以帮忙吗?
var validateFormat = function () {};
{
validateFormat = function (format) {
if (format === undefined) {
throw new Error('invariant requires an error message argument');
}
};
}
Run Code Online (Sandbox Code Playgroud)
这里为什么反应开发者将validateFormat包装成大括号?这样做有什么意义吗?
如果我执行以下操作,它的工作原理相同 -
var validateFormat = function () {};
validateFormat = function (format) {
if (format === undefined) {
throw new Error('invariant requires an error message argument');
}
};
Run Code Online (Sandbox Code Playgroud)
Pat*_*rts 27
块范围是他们的babel-preset-fbjs的结果.如果你看一下原始的源代码,你会发现这个函数是有条件地定义的,取决于它的值__DEV__,它在转换过程中被优化,因为它相当于process.env.NODE_ENV !== 'production'.
let validateFormat = () => {};
if (__DEV__) {
validateFormat = function(format) {
if (format === undefined) {
throw new Error('invariant requires an error message argument');
}
};
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
946 次 |
| 最近记录: |