2014-12-21 2 views
0

Я недавно начал использовать Browserify, и мне было интересно, загрязняет ли он глобальную область видимости.Загрязнение глобальной области с помощью 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 я первый объявляю мое " class ", а затем добавить к нему метод. В самом конце скрипта я экспортирую его в модуль.

К не оборачивать свой код в Animate.js с функцией как:

module.exports = function() { // My Person "class" will be here } 

Или как:

(function() { // Paste Animate.js content as it is now here... })() 

Означает ли это, я загрязнена глобальный масштаб или потому, что я использую browserify он будет автоматически при создании файла bundle.js, что я не загрязню глобальную область?

ответ

2

Нет, это не загрязнит ваш глобальный охват.

Я работаю в течение нескольких месяцев с помощью браузера, и я рассматриваю это как лучший способ описания классов.

Проверьте сборку браузера и посмотрите, насколько красиво она завершена, чтобы не загрязнять глобальную область.

Смежные вопросы