Web 前端 javascript 应用程序在生产中几乎没有“暴露”,即声明为全局 var 或附加到window
.
- 所有代码最小化并附加到一个(或几个)js文件;
- 几乎没有“暴露”,即声明为全局 var 或附加到
window
.
但是,在开发过程中,如果代码是可读的、拆分为多个文件,并且可以从控制台访问原型和相关实例,那么生活会更轻松。
更清楚地说(撇开最小化,这很容易通过许多不同的工具获得),在生产中我会有类似的东西:
(function() {
var Greeter = function() {
};
Greeter.prototype.msg = function() {
return 'Hello, world!';
};
Greeter.prototype.greet = function() {
console.log(this.msg());
};
new Greeter().greet();
}());
这样,我的代码将在不暴露任何东西的情况下完成它的工作:Greeter 对象及其实例都不能被其他代码访问。
(当然,这只是实现这一目标的众多方法之一,但这不是问题的重点)。
但是,调试此代码很困难,并且不可能进行单元测试。
为了允许调试和测试,我通常会将 Greeter 及其实例附加到window
对象或其他对象上。
所以,在开发过程中,我会使用类似的东西:
(function() {
var Greeter = function() {
};
Greeter.prototype.msg = function() {
return 'Hello, world!';
};
Greeter.prototype.greet = function() {
console.log(this.msg());
};
window.Greeter = Greeter;
window.greeter = new Greeter();
window.greeter.greet();
}());
这样我就可以对 Greeter 进行单元测试,还可以从浏览器的控制台询问它以检查它的状态。
是否有一个工具,或一组工具,或一些不同的方式来组织我的代码,以便可以从开发版本传递到生产版本(这也将被最小化)?