我以前使用的lodash.js没有任何包装,如下所示:
if (_.isFunction(myFunc)) { ... }
最近,我开始使用webpack。现在,似乎很多函数如isFunction都不是核心模块的一部分。因此,以下工作:
var _ = require("lodash/core");
var _isFunction = require("lodash/isFunction");
但是,当我使用没有webpack的lodash(没有点)时,上面的内容会改变语法。我应该如下所示:
_.isFunction = require("lodash/isFunction")
那么,那要保持相同的语法吗?
答案 0 :(得分:2)
当您执行以下操作时,可以在一个大的lodash对象下导入所有内容:
var _ = require('lodash');
_
(或您选择的任何var)将填充一系列函数:
_ = {
isX: function...
isY: function...
// ... etc
}
即:它带来所有。
执行以下操作时,它只会将所需模块直接导入变量:
var anynameX = require('lodash/isX');
var anynameY = require('lodash/isY');
anynameX
和anynameY
可以是任何内容。
换句话说:
_.isX === anynameX;
_.isY === anynameY;
所以要回答你的上一个问题,你可以这样做:
_.anynameX = require('lodash/isX');
但仅当_
已经存在(并且没有被冻结)时,例如:
var _ = {};
_.anynameX = require('lodash/isX');