Understanding the declaration of the underscore in _.js?(理解_.js中下划线的声明吗?)
本文介绍了理解_.js中下划线的声明吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是从annotated source of _.js开始的。尽管我可能会尝试,但我的JavaScript能力还不够高,无法理解这里发生的事情。我希望有人能一步一步地给出一个真实的解释。我真的不知道下面的代码除了以某种方式设置_以供使用之外还有什么作用,尽管我理解每个表达式。
var _ = function(obj) {
if (obj instanceof _) return obj;
if (!(this instanceof _)) return new _(obj);
this._wrapped = obj;
};
if (typeof exports !== 'undefined') {
if (typeof module !== 'undefined' && module.exports) {
exports = module.exports = _;
}
exports._ = _;
} else {
root._ = _;
}
推荐答案
var _ = function(obj) {
// Either serve as the identity function on `_` instances,
// ... or instantiate a new `_` object for other input.
// If an `_` instance was passed, return it.
if (obj instanceof _) return obj;
// If someone called `_(...)`, rather than `new _(...)`,
// ... return `new _(...)` to instantiate an instance.
if (!(this instanceof _)) return new _(obj);
// If we are instantiating a new `_` object with an underlying,
// ... object, set that object to the `_wrapped` property.
this._wrapped = obj;
};
// If there is an exports value (for modularity)...
if (typeof exports !== 'undefined') {
// If we're in Node.js with module.exports...
if (typeof module !== 'undefined' && module.exports) {
// Set the export to `_`
exports = module.exports = _;
}
// Export `_` as `_`
exports._ = _;
} else {
// Otherwise, set `_` on the global object, as set at the beginning
// ... via `(function(){ var root = this; /* ... */ }())`
root._ = _;
}
这篇关于理解_.js中下划线的声明吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:理解_.js中下划线的声明吗?
基础教程推荐
猜你喜欢
- 当用户滚动离开时如何暂停 youtube 嵌入 2022-01-01
- 动态更新多个选择框 2022-01-01
- 响应更改 div 大小保持纵横比 2022-01-01
- 悬停时滑动输入并停留几秒钟 2022-01-01
- 有没有办法使用OpenLayers更改OpenStreetMap中某些要素 2022-09-06
- 在for循环中使用setTimeout 2022-01-01
- 角度Apollo设置WatchQuery结果为可用变量 2022-01-01
- Karma-Jasmine:如何正确监视 Modal? 2022-01-01
- 在 JS 中获取客户端时区(不是 GMT 偏移量) 2022-01-01
- 我什么时候应该在导入时使用方括号 2022-01-01