我最近开始使用Browserify,我想知道我所做的是否会污染全球范围。
我有main.js
:
var Person = require('./Animate/Animate.js');
var me = new Person('John');
me.sayHello();
这是我项目的起点,它依赖于另一个文件(Animate/Animate.js
):
var $ = require('jquery');
function Person(name)
{
this.name = name;
}
Person.prototype.sayHello = function() {
$('body').html(':3');
alert('Hello! My name is ' + this.name + ', nice to meet you, sir. New version please.');
}
module.exports = Person;
在Animate.js
我首先声明我的"类"然后向它添加一个方法。在脚本的最后,我将它导出到模块。
不使用以下函数将代码包装在Animate.js
中:
module.exports = function() { // My Person "class" will be here }
或者喜欢:
(function() { // Paste Animate.js content as it is now here... })()
这是否意味着我已经污染了全球范围,或者因为我使用browserify,它会在创建bundle.js
文件时自动确保我不会污染全球范围?
答案 0 :(得分:2)
不,它不会污染您的全球范围。
我使用browserify工作了几个月,我认为这是描述类的最佳方法。
检查browserify构建并查看它的包装效果如何,以免污染全局范围。