나는 이것을 처리하기 위해 내 머리를 찢어 버리고있었습니다 ... 특히 html5 탐지 스크립트의 경우. 한 번만 설정되고 다시 덮어 쓸 수없는 변수를 원했습니다. 이것은이다 :한 번만 설정되는 자바 스크립트의 정적 변수
var StaticConfiguration = {};
StaticConfiguration.Main = {
_html5: null
}
StaticConfiguration.getVariable = function(name) {
return StaticConfiguration.Main["_" + name];
}
StaticConfiguration.setVariable = function(name, value) {
if(StaticConfiguration.Main["_" + name] == null) {
StaticConfiguration.Main["_" + name] = value;
}
}
첫째, 나는이 모든 변수를 포함하는 전역 객체의 StaticConfiguration을 정의 - 내 경우, 그냥 "HTML5". 나는 그것을 애플리케이션 내부에 설정하고자하므로 null로 설정한다. 그렇게하려면 전화 :
설정되었습니다. 다시 설정하려고하면 _html5가 더 이상 null이 아니기 때문에 실패합니다. 그래서 나는 실제적으로 밑줄을 사용하여 정적 변수를 숨 깁니다.
이것은 나를 많이 돕고 있습니다. 나는 그것이 좋은 접근 방법이되기를 바랍니다. - 그렇지 않으면 말해주세요. :)
가 어떤 상황이 변수가 덮어 얻을 것이다 파티에하지만,이 같은 상황에서 조금이야 알아? 어쨌든 탐지 스크립트는 한 번만 실행된다고 생각합니까? –
잘 확인하지 않고 쉽게 할 수 있습니다 StaticConfiguration.setVariable ("html5", "bla"); StaticConfiguration.setVariable ("html5", "boom"); StaticConfiguration.setVariable ("html5", "bang"); ... 변수가 항상 설정됩니다. 즉, 피하고 싶었던 것이 있습니다. –