고리타분한 개발자
hasownProperty 메소드를 사용하여, 어떤 객체의 프로퍼티가 자기 자신의 프로퍼티인지 아니면 프로토타입 체인에 있는 것인지 확인할 수 있습니다. 그리고, 이 메소드는 Object.prototype으로 부터 상속받아 모든 객체가 가지고 있습니다. hasOwnProperty 메소드는 프로토타입 체인을 탐색하지 않고 프로퍼티를 다룰수있는 유일한 방법입니다. // Object.prototype을 오염시킨다.Object.prototype.monkey = 10;var animal = { dog: undefined }; animal.monkey; // 10'monkey' in animal; // true animal.hasOwnProperty('monkey'); // falseanimal.hasOwnProp..
Javascript는 클래스 스타일의 상속 모델을 사용하지 않고 프로토타입 스타일의 상속 모델을 사용합니다.프로토타입 스타일의 상속 모델의 특징중 하나는 프로토타입 체인을 이용해 상속을 구현한다는 점입니다. function Monkey() { this.value = 10;}Monkey.prototype = { method: function () { }}; function Animal() { } // Monkey의 인스턴스를 만들어 Animal의 prototype에 할당합니다.Monkey.prototype = new Monkey();Animal.prototype.monkey = 'Hello Monkey'; // Animal 함수를 생성자로 만들고Animal.prototype.constructor = Ani..
Javascript에서는null과 undefined를 제외한 모든 것들은 객체처럼 동작합니다. true.toString(); // 'true'false.toString(); // 'false' [1, 2, 3].toString(); // '1,2,3'['a', 'b', 'c'].toString(); // 'a,b,c' function Monkey(){}Monkey.bar = 1;Monkey.bar; // 1 10.toString(); // SyntaxError 코드의 마지막 줄에서는 숫자 리터럴을 객체처럼 사용하려고 하였으나, Javascript에서 Dot Notation이 있는경우 위와같이 SyntaxError로 반환됩니다.하지만, 꼼수를 사용하여 우리는 숫자를 객체처럼 사용할 수 있습니다. 10..t..