2014년 1월 17일 금요일

함수 프로토 타입 또 정리

<script>
//var a = function(){};
//a.prototype.x = function(){
// alert(1);
//};
//var b = new a();
//b.x();

//
//var a = function(){
// this.x = function(){
// alert(1);
// };
//}
//
//
//var b = new a();
//b.x();

//function a(){ this.x = function(){
//alert(1);
//};}
//내부에서 this.x 를 하더라도 그것이 바로 prototype으로 값이 잡히는게 아님
// new를 때리면 이 값은 그 객체의 한 값으로 잡히게 됨
// b = new a();  이런식으로 하면  b의 객체에 __proto__속성으로  x가 값이 들어가는게 아닌
//바로  b.x의 객체의 값에 바로 붙게됨

//a.prototype = {
// "a1" : "1"
//};

//var b = new a();
//alert(b.a1);
//
//var a = function(){
// this.x = "1"; //공유
//};
//
//
//var b = new a;
////a.x = "2";
////a.prototype.x = "3"; //상속
//alert(b.x);
//alert(b.x);
//
//var c = function(){
// this.x = "4";
//};
//c.prototype = b;
//c.prototype.x = "5";
//
//var d = new c;
//var c;
//function a(){
// var b = "1";
// c = b;
//}
//
//a();

function chk(x,y,z){
return arguments.callee.length;
}
var a = chk("a");

//함수가 생성되면 처음에 파라미터에 맞게 함수에 파라미터의 길이만 셋팅되고
//scope객체가 생성된다.
//[[scope]]객체에서 1,local variable 객체, 2. 그 바로 위 범위 객체 (일반적으론 global variable )
//가 셋팅이 됨, local variable에 변수 별로 x,y,z, length, arguments 객체가 셋팅됨
//arguments 객체에 순번 별로 0: 값, 1:값, 2:값, length, callee가 셋팅됨
//callee는 이 arguments객체를 호출한 원본 함수를 가르킴 callee 자체가 자신을 호출한 함수 자체를 가르킴


</script>

댓글 없음:

댓글 쓰기