我最近开始使用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/