> 웹 프론트엔드 > JS 튜토리얼 > JavaScript에서 글로벌 네임스페이스 오염을 어떻게 피할 수 있습니까?

JavaScript에서 글로벌 네임스페이스 오염을 어떻게 피할 수 있습니까?

Patricia Arquette
풀어 주다: 2024-11-27 01:14:10
원래의
1045명이 탐색했습니다.

How Can We Avoid Global Namespace Pollution in JavaScript?

글로벌 네임스페이스 오염 해독

글로벌 네임스페이스 오염은 과도한 전역 변수를 선언할 때 발생하며 잠재적으로 충돌이 발생하고 코드 가독성이 저하됩니다.

쓰레기에 미치는 영향 수집

전역 변수는 전역 네임스페이스가 범위를 잃어 가비지 수집 대상이 될 때까지 지속됩니다. 이로 인해 특히 대규모 데이터 세트의 경우 메모리 누수 및 성능 문제가 발생할 수 있습니다.

전역 네임스페이스 남용

여러 전역 변수를 생성하는 것은 악의적인 행위로 간주됩니다. 이름 충돌, 덮어쓰기 및 혼란이 발생할 수 있습니다.

예: 나쁜 습관

var x1 = 5;
var x2 = 20;
var y1 = 3;
var y2 = 16;

var rise = y2 - y1;
var run = x2 - x1;

var slope = rise / run;

var risesquared = rise * rise;
var runsquared = run * run;

var distancesquared = risesquared + runsquared;

var distance = Math.sqrt(dinstancesquared);
로그인 후 복사

이렇게 하면 잠재적으로 다른 전역 변수를 방해할 수 있는 11개의 전역 변수가 생성됩니다. .

재능이 뛰어나다 접근 방식

모듈 패턴은 단일 전역 개체 내에 변수와 메서드를 캡슐화하여 더 나은 솔루션을 제공합니다. 이렇게 하면 다른 코드가 캡슐화된 변수에 액세스하거나 수정하는 것을 방지하여 전역 네임스페이스를 보호합니다.

예: 향상된 접근 방식

var Calculate = function () {
  // Local variables
  var Coordinates = [];
  var Coordinate = function (xcoord, ycoord) {
    this.x = xcoord;
    this.y = ycoord;
  };

  return {
    // Exposed methods
    AddCoordinate: function (x, y) {
      Coordinates.push(new Coordinate(x, y));
    },

    Slope: function () {
      var c1 = Coordinates[0];
      var c2 = Coordinates[1];
      return (c2.y - c1.y) / (c2.x - c1.x);
    },

    Distance: function () {
      // Local calculations
      var c1 = Coordinates[0];
      var c2 = Coordinates[1];

      var rise = c2.y - c1.y;
      var run = c2.x - c1.x;

      var risesquared = rise * rise;
      var runsquared = run * run;

      var distancesquared = risesquared + runsquared;

      var distance = Math.sqrt(distancesquared);

      return distance;
    }
  };
};

// Self-executing closure
(function () {
  var calc = Calculate();
  calc.AddCoordinate(5, 20);
  calc.AddCoordinate(3, 16);
  console.log(calc.Slope());
  console.log(calc.Distance());
})();
로그인 후 복사

이 접근 방식은 액세스를 제한하여 전역 오염을 줄입니다. Calculate 개체 내의 변수 및 메서드에 적용됩니다.

위 내용은 JavaScript에서 글로벌 네임스페이스 오염을 어떻게 피할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿