我最近开始使用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文件时自动确保我不会污染全局范围?

最佳答案

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

我使用browserify工作了几个月,我认为这是描述类的最佳方法。

检查browserify版本,并查看其包装精美程度,以免污染全局范围。

关于javascript - 使用Browserify污染全局范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27587785/

10-10 11:09