| 
	  
	Javascript 개체
	  
	Javascript의 개체는 단순히 key/value의 쌍을 가지는 컬렉션이다.  
	MS계열에서의 문자열키가 있는 사전으로 생각할수도 있다. 
	  
	"."(dot)연산자나 일반적으로 사전을 처리할때 사용되는 "[]"연산자를 사용하여  
	개체속성을 설정하거나 얻을수 있다. 
	다음 <코드1> 과 <코드2>, <코드3>는 정확히 같은 작업을 수행한다. 
	  
	  
	<코드1> 
	  
	var userObject = new Object(); 
	userObject.lastLoginTime = new Date(); 
	alert(userObject.lastLoginTime);  
	  
	  
	<코드2> 
	  
	var userObject = {}; // equivalent to new Object() 
	userObject[“lastLoginTime”] = new Date(); 
	alert(userObject['lastLoginTime']); 
	  
	  
	<코드3> 
	  
	var userObject = { 'lastLoginTime': new Date() }; 
	alert(userObject.lastLoginTime); 
	  
	  
	* 참고 
	var userObject; // var 문에서 변수를 초기화 하지 않으면 undefined 값을 자동 수행 
	- undefined를 숫자식에 사용할때 결과는 NaN(Not a Number)으로 변환, 문자식에서는 "undefined", boolean식은 false 로 변환. 
	  
	Javascript 함수
	  
	Javascript에서는 함수와 개체간의 차이가 모호하다. 다음 <코드4>, <코드5>, <코드6>을 보면 
	함수는 함수 호출작업을 지원하는 개체라고 볼수 있다. 
	  
	  
	<코드4> 
	  
	function func(x) { 
	    alert(x); 
	} 
	func('blah'); 
	  
	  
	<코드5> 
	  
	var func = function(x) { 
	    alert(x); 
	}; 
	func('blah2'); 
	  
	  
	<코드6> 
	  
	var func = new Function(“x”, “alert(x);”); 
	func('blah3'); 
	  
	  
	  
	* 참고 
	형변환 우선순위 : 문자 > 숫자 > 부울 
	  
	  
	
		  
		Javascrpit 클래스
		  
		Javascrpit에서는 클래스가 없다. 비슷한 효과를 낼수는 있지만 클래스는 아니다. <코드7> 
		  
		<코드7> 
		  
		function DogConstructor(name) { 
		    this.name = name; 
		    this.respondTo = function(name) { 
		        if(this.name == name) { 
		            alert('Woof');         
		        } 
		    }; 
		} 
		  
		var spot = new DogConstructor('Spot'); 
		spot.respondTo('Rover');  
		spot.respondTo('Spot');  // alert "Woof" 
		  
		  
		* 참고 
		조건부 블럭내에 변수 선언시 var를 사용하지 않은 경우 전역변수로 사용되어짐. 
		조건부 블랙내에 변수 선언시 블럭 시작 시점에서 모든 변수 선언을 처리 
		  
		  
		
			Javascript 프로토타입
			  
			prototype 속성을 사용하여 속성 및 메서드를 개체에 추가할 수 있으면, 이미 만들어진 이후에도 추가 가능 
			  
			<코드8> 
			var testVehicle = new Vehicle(2, false); 
			Vehicle.prototype.color = "red"; 
			var testColor = testVehicle.color; // testColor = "red" 
			  
			기존 객체를 사용하여 다른 객체로 파생할때 사용 
			  
			<코드9> 
			var Bicycle = Object.create(Object.getPrototypeOf(Vehicle), { 
			    "pedals" :{value: true} 
			}); 
			  
			<코드9>에서 Bicycle의 프로토타입은 Vehicle.prototype 이다. 
			  
			* 참고 
			JavaScript에는 object, function, string, number, boolean 및 undefined 형식만 존재 
			 - 'typeof'예약어로 확인 가능. ex) typeof(a) or typeof b 
			  
			  
	  
	원문 : http://msdn.microsoft.com/ko-kr/magazine/cc163419.aspx 
	  
	  |