var myApp = myApp || {};
필자는 위 라인이 무엇인지 이해합니다. 그러나 가장 좋은 용도는 무엇입니까?이 형식이 파이썬, PHP와 같은 다른 언어에서는 사용되지 않는 이유는 무엇입니까?조건이있는 객체를 선언하는 이유 myApp = myApp || {};
var myApp = myApp || {};
필자는 위 라인이 무엇인지 이해합니다. 그러나 가장 좋은 용도는 무엇입니까?이 형식이 파이썬, PHP와 같은 다른 언어에서는 사용되지 않는 이유는 무엇입니까?조건이있는 객체를 선언하는 이유 myApp = myApp || {};
코드에서 설정되지 않은 변수에 대한 오류를 피하기 위해 이러한 종류의 코드가 사용됩니다. 마찬가지로이 경우 : 지금 당신을
if (!isset($variable)) $variable = "";
:
는 PHP에서function sayHello(name) {
var name = name || "";
return "Hello " + name;
}
sayHello(); // "Hello "
sayHello("Mike"); // "Hello Mike"
function lengthOf(obj) {
var obj = obj || [];
return obj.length;
}
lengthOf(); // 0
lengthOf([1,2,3]); // 3
당신이 isset()
기능을 사용하여 작업을 수행 할 수 있습니다
function sayHello(name) {
return "Hello " + name;
}
sayHello(); // "Hello undefined"
function lengthOf(obj) {
return obj.length;
}
lengthOf(); // ReferenceError cannot read property length of undefined
당신은 간단한 줄을 추가하여이를 방지 할 수 있습니다 오류나 예기치 않은 결과없이 변수를 사용할 수 있습니다.
하나의 유스 케이스는 동일한 변수/ns를 사용하는 두 개의 스크립트가 있고 이미 정의되지 않은 경우에만 새 스크립트를 작성하려는 경우입니다.
당신은 자바 스크립트 네임 스페이스를 에뮬레이션하려면이 옵션을 사용할 수 있습니다
(function(api){
/* private functions here */
api.apiFunction = function(){ /* useful code*/ }
})(window.myNamespace = window.myNamespace || {})
당신은 그럼 그냥 새로운 기능을 추가하기 위해 동일한 구문을 사용하는 것과 같은 네임 스페이스의 일부가 될 것인지 나중에로드 할 수있는 다른 스크립트를 :
(function(api){
/* private functions here */
api.anotherApiFunction = function(){ /* useful code*/ }
})(window.myNamespace = window.myNamespace || {})
anotherApiFunction이 이제는 동일한 네임 스페이스에 추가됩니다. 다음과 같은 두 가지 기능에 모두 액세스 할 수 있습니다.
myNamespace.apiFunction();
myNamespace.anotherApiFunction();
희망이 없어도 괜찮습니다. – manuell
감사합니다. –