XPLATFORM 101
함수가 객체라는 것은 쉽게 받아들여지지 않습니다.
항상 함수는 다른 객체와 별개로 이해했기 때문에
이런 개념은 받아들이기가 어려운데요.

함수 표현식을 사용하면 좀 더 쉽게 이를 인지할 수 있습니다.

예를 들어
var add = function add(a, b) {
return a + b;
}
위와 같이 함수표현식을 사용하면 함수가 객체라는 것을 이해할 수 있습니다.
일반적으로 함수를 표현할 때는 아래와 같이 사용했습니다. 이런 것을 함수 선언문이라고 합니다.
function add(a, b) {
return a + b;
}
함수 선언문이 틀린 방식은 아니지만
몇가지 상황에서 사용하기 애매한 경우가 있기 때문에
가능하다면 함수 표현식을 사용할 것을 권장합니다.

그리고 아래와 같이 무명 함수 표현식을 사용할 수도 있습니다.
var add = function (a, b) {
return a + b;
}
이런 경우에는 프로젝트 탐색창에서 함수 목록이 표현되지 않습니다.


때문에 엑스플랫폼에서는 기명 함수 표현식을 사용해야 합니다.

http://cafe.naver.com/xplatform101/334 
XPLATFORM 101
배열 자체도 객체지만 별도의 표기법을 가지고
배열 리터럴을 사용할 수 있습니다.

일반적으로는 아래와 같은 식으로 배열을 생성해서 사용할 겁니다.
언뜻 보면 큰 문제는 없어보입니다. 결과값도 제대로 나오구요.
var a = new Array(1,2,3);
trace(a.length);
하지만 아래와 같은 경우는 의도치 않은 결과가 나오게 됩니다.
var b = new Array(3);
trace(b.length);
원래의 의도는 3이라는 1개의 정수를 가지는 배열을 만들고자 했지만
길이가 3인 배열이 만들어집니다.

그래서 이런 문제를 방지하기 위해 아래와 같은 리터럴패턴을 추천합니다.
var b = [3];
trace(b.length);
이제는 원하던 결과값이 보일 겁니다.

배열과 관련해서 타입을 구분할때 
Object.prototype.toString()을 호출하게 되면 [object Array]를 반환하게 되는데
엑스플랫폼에서는 이를 처리해주지 못합니다.
그래서 대신 constructor를 사용합니다.
XPLATFORM 101
이전에 작성된 글 중에서 String에 대해 설명하면서
문자열 리터럴을 잠시 언급한 적이 있었습니다.
http://cafe.naver.com/xplatform101/252 

그때에는 정확한 의미를 몰랐는데
이를 다시 정리합니다.

리터럴이라는 것은 자신의 표기법이 곧 자신의 값이 되는 상수를 의미한다고 합니다.
음 역시 한국말이지만 잘 이해가 안됩니다.
위키백과에 보면 소스코드의 고정된 값이라고 설명하고 있네요.

그냥 소스 코드를 보는 것이 더 이해가 빠를 것 같습니다.
var dog = {
name: "Benji",
getName: function() {
return this.name;
}
};
dog 라는 객체를 위와 같이 선언할 수 있습니다.
이 녀석을 debug 모드에서 살펴보면 다음과 같습니다.


new Object() 와 같은 것을 사용하지 않았는데도
dog가 Object 로 정의되고 name 이라는 속성과 getName 이라는 function을 가지고 있네요.

아래와 같이 호출해볼 수도 있습니다.
function a() {
trace(dog.getName());
}

function b() {
trace(dog.name);
}

객체 리터럴 표기법은 간결한 표기가 가능하고
생성시점에 객체에 기능을 추가할 수 있는 장점이 있다고 합니다.

사용방법은 위에서 본 것처럼 객체를 중괄호 {...} 로 감싸고
객체내 속성과 메소드를 쉼표로 분리하고
속성명과 값은 콜론으로 분리합니다.
그리고 마지막 닫는 중괄호 뒤에는 세미콜론으로 마무리를 합니다.

이렇게 써보니 무척 흥미로운 녀석이네요.

http://cafe.naver.com/xplatform101/332