2014-10-16 2 views
0

자바 스크립트에서 여러 개의 HTML5 기능 (예 : 비디오 재생)을 처리하는 "클래스"를 만들고 있습니다.자바 스크립트 : 클래스 내부에서 전역 범위 기능 만들기

이 자바 스크립트 클래스는 HTML5 기능이 브라우저에없는 경우 플래시 대체를 생성합니다.

플래시 폴백 파일은 전역 함수를 호출하여 Javascript와 통신합니다.

내 질문은 :

내가 얻을 수있는 방법은 자바 스크립트 클래스는 필요한 기능을 생성하기 위해? 첫번째 것 var를 사용하여 정의하지 않고 변수를 사용하여 내 지식


그 전역 변수 - 그러나 이것은 해키 느낌이 확실히 엄격 모드에 실패합니다.

클래스 자체는 모든 변수에 바인딩 될 수 있으므로 클래스 내부의 함수에 액세스하려고하면 해당 변수를 먼저 알지 못하는 것이 문제가 될 수 있습니다. 또한이 코드를 가능한 이식성있게 만들기를 원합니다.

답변

1

편집는 : 코멘트에 mccainz에 의해 했나요로 네임 스페이스를 사용하는 것이 더 나은 생각

당신은 엄격 모드 귀찮게하지 않고 전역 함수를 정의하는 창을 사용할 수 있습니다

:

function MyClass() { 
    // your constructor 
    window.globalFunctions = window.globalFunctions || {}; 
} 

MyClass.prototype.createGlobalFunctionFoo = function() { 
    window.globalFunctions.foo = function() { 
     // your code 
    }; 
}; 

var myInstance = new MyClass(); 
myInstance.createGlobalFunctionFoo(); 

console.log(globalFunctions.foo); // your function 

물론 기존 기능이나 다른 엣지 케이스를 다시 쓰지 않으려면 몇 가지 검사를해야 할 것입니다.

+1

'네임 스페이스'개체에 창에 태그를 지정하고 모든 외부 위치를 배치하여 풋 프린트를 제한하는 것이 좋습니다. – mccainz

관련 문제