Rev. 2.73

기존의 Object 클래스에 메서드를 2개 추가하고 있습니다.

extend 메서드
제2인수의 오브젝트의 프롭퍼티 모든 것을, 제일 인수의 오브젝트에 추가 또는 덧쓰기해, 그것을 반환하고 있습니다. prototype.js에서는 클래스의 계승에 자주(잘) 이용되고 있습니다.이하와 같이 합니다.

Object.extend(subClass.prototype, superClass.prototype);

inspect 메서드
undefined는 값이 미정도리라고 하는 의미입니다.다만, undefined와 null는 거의 동일 취급이라고 생각되어 실제로'null'가 표시될 것은 없는 생각이 듭니다.(IE, NC,FireFox,Opera로 확인)

var testUndefined;
var testNull = null;
alert(Object.inspect(testUndefined)); //'undefined'가 표시된다
alert(Object.inspect(testNull)); //'undefined'가 표시된다
//(참고) alert로 표시했을 경우
alert(testUndefined); //'undefined'가 표시된다
alert(testNull); //'null'가 표시된다

Object.inspect의 5행째로, 인수 오브젝트에 inspect 메서드가 있으면 그것을 호출해, 없으면 toString 메서드를 호출해 반환치를 그대로 반환하고 있습니다.조건 연산자(조건식 ? a : b)는 향후 빈출 합니다.조건식이 변수만의 경우, null(undefined)로 false, null(undefined) 이외로 true를 의미합니다.

이상의 처리중에 발생한 에러를 try...catch문으로 포착하고 있습니다.instanceof 연산자로 에러 오브젝트 e가 RangeError인지 판정합니다.RangeError이면'...'를 반환합니다.그 이외는 에러 오브젝트를 그대로 슬로우 하고 있습니다.

RangeError는 NativeError 오브젝트의 하나로, 범위외 에러를 취급하기 위한 에러 오브젝트입니다.(참고:404 Error - Not Found) 그러나, 이 경우 어떤 풀어에 발생하는지는 잘 모릅니다···

클래스에 고유의 메서드
상기의 메서드는 Object.extend와 같이 정의되고 있기 (위해)때문에, 클래스에 고유의 메서드가 되어,인스턴스나 서브 클래스에는 갖춰지지 않습니다.(Object.prototyep.extend와 같이 정의되면 인스턴스나 서브 클래스에도 갖춰집니다)

alert(Object.extend); //코드가 표시된다
var object = new Object();
alert(object.extend); //undefined라고 표시된다

Comments

Got something to add? You can just leave a comment.

Your Reaction Time!

captcha

avatar