【发布时间】:2013-07-13 17:07:58
【问题描述】:
这是从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._ = _;
}
【问题讨论】:
-
我的问题,为什么它的作用很重要?
-
....尝试学习和理解高级编码技术?
-
好的,很公平。首先,你需要知道
instanceof做了什么。instanceof运算符测试对象的原型链中是否具有构造函数的原型属性。更多信息在这里:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… -
在公开之前检查上下文的模式称为universal module definitions。 See here too.