기능이 있다고 가정 해 보겠습니다.기능 개체에 속성을 첨부해도 안전합니까?
function foo() {
var bar = true;
if(bar) {
//Do x
}
}
이 예에서 bar
은 정규 표현식과 같은 일부 조건입니다. 전 세계적으로 액세스 할 수 있기를 원합니다. 따라서 조건을 변경하고 foo()
을 다시 실행할 수 있습니다.
var foo_options = {
bar: true
};
function foo() {
if(foo_options.bar) {
//Do x
}
}
foo();
foo_options.bar = false;
foo();
내가 싶습니다 :
var bar = true;
function foo() {
if(bar) {
//Do x
}
}
foo();
bar = false;
foo();
또는 함수에 인수 :
function foo(bar) {
if(bar) {
//Do x
}
}
foo(true);
foo(false);
또는 별도의 전역 객체 나는 그것을 전역 변수를하여이 작업을 수행 할 수 하나의 전역 변수를 만들어서 조건을 유지하는 것을 피하십시오. 불필요하게 불필요하게 혼란 스럽기 때문에 전역 변수 (실제로는 잘 명명 된 경우에도)가 실제로 한 곳에서만 사용되는 것을 보유하게 만듭니다. 이 함수는 여러 번 호출 될 것이고 실제로 함수가 호출 된 인수를 제어 할 수 없기 때문에 조건을 인수로 전달할 필요가 없습니다. 글로벌 객체는 글로벌 변수와 비슷한 이유 때문에 불필요한 것처럼 보이지만 매우 까다 롭습니다. 나는 '
function foo() {
if(foo.bar) {
//Do x
}
}
foo.bar = true;
foo();
foo.bar = false;
foo();
: 나는 현재 foo()
기능을하기 때문에 자바 스크립트 객체로 함수 (문자열이나 숫자가 아닌 다른 거의 모든)를 처리하는 방법의 수 속성을주는 고려하고
이것을 시험해 볼 수는 있지만 어떤 식 으로든 좋은 생각인지 위험한 지에 대해서는 우려하고 있습니다. 조언?
가끔은 끝났지 만 가장 자주 변수를 클로저에 정의 할 수 있습니다. –
기존 속성을 덮어 쓰지 않는 한 ... –
OP, 답변을 작성했습니다. 유용하다고 생각하지 않습니다. 그렇지 않다면 제거하겠습니다. –