我之前正在阅读如何“创建 JavaScript 库”,我遇到了这些让我想扯掉头发的代码。
这是让我的大脑陷入困境的代码:
if (window === this) {
return new _(id);
}
_(id) 只是包含此代码的函数名称。如果您需要自己查看,这里是其余的代码。
function _(id) {
// About object is returned if there is no 'id' parameter
var about = {
Version: 0.5,
Author: "Michael Jasper",
Created: "Fall 2010",
Updated: "23 November 2011"
};
if (id) {
// Avoid clobbering the window scope:
// return a new _ object if we're in the wrong scope
if (window === this) {
return new _(id);
}
// We're in the correct object scope:
// Init our element object and return the object
this.e = document.getElementById(id);
return this;
} else {
// No 'id' parameter was given, return the 'about' object
return about;
}
};
我以前从未见过“返回新功能”,但我很想了解它的功能。
另一段代码:
_.prototype = {
hide: function () {
this.e.style.display = 'none';
return this;
}
show: function () {
this.e.style.display = 'inherit';
return this;
}
};
我知道这段代码向 _ 对象添加了新方法,但为什么他们“返回这个”?我试过没有,它工作得很好。
最后一件事,文章的链接是http://www.mikedoesweb.com/2012/creating-your-own-javascript-library/