用浏览器污染全局范围



我最近开始使用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... })()

这是否意味着我已经污染了全局范围,或者因为我正在使用浏览器化,它在创建bundle.js文件时会自动确保我不污染全局范围?

不,它不会污染您的全局范围。

我正在使用浏览器化工作了几个月,我认为这是描述类的最佳方法。

检查浏览器化构建,看看它的包装有多漂亮,以免污染全局范围。

最新更新