본문 바로가기

학습 log (이론)/javascript20

'프로토타입 체이닝' 정의 암묵적 프로토타입 링크 (implicit prototype link), [[prototype]]링크-자바스크립트의 모든 객체는 자신의 부모인 프로토타입 객체를 가리키는참조 링크 형태의 숨겨진 프로퍼티-모든 객체의 [[prototype]] 프로퍼티에 저장됨 프로토타입 체이닝-객체는 자기 자신의 프로퍼티뿐만이 아니라, 자신의 부모 역할을 하는 프로토타입 객체의 프로퍼티도 자신의 것처럼 접근가능이것을 가능하게 하는 것이 프로토타입 체이닝 -프로토타입 체이닝은 자바스크립트에서 특정 객체의 프로퍼티나 메서드에 접근할 때, [[prototype]]링크를 따라 자신의 부모 역할을 하는 프로토타입 객체의 프로퍼티를 차례대로 검색해서 접근하는데 사용함 *프로토타입 체이닝 상세http://illua.tistory.com/38 2016. 10. 17.
'call(), apply()' 함수와 프로토타입 체이닝 this를 특정 객체에 명시적으로 바인딩 시키는 방법 apply()function.apply(thisArg, argArray)thisArg, 메서드를 호출한 함수 내부에서 사용한 this에 바인딩할 객체argArray, 함수를 호출할 때 넘길 인자들의 배열function Person(name, age){this.name = name;this.age = age;return 100;}var illua = {};Person.apply(illua, ['illua', 50]); call()apply()와 동일하지만 넘겨주는 인자를 각 하나의 인자로 넘기는 차이만 있음Person.call(illua, 'illua', 50); 함수리턴1.일반 함수나 메서드는 리턴값을 지정하지 않을 경우 undefined값 리턴2.생.. 2016. 10. 17.
'생성자 함수를 이용한 객체 생성과 this #2' 함수와 프로토타입 체이닝 생성자 함수를 호출할 때 this바인딩new 연산자를 이용한 함수 생성1.빈 객체 생성 및 this바인딩2.this를 통한 프로퍼티 생성3.생성된 객체 리턴default, this로 바인딩된 새로 생성한 객체 리턴 var Person = function (name){if(!(this instanceof Person))return new Person(name);this.name = name ? name : 0;};var illua = new Person('illua');console.log(illua.name); //결과 : illuaconsole.log(Person('illua')); //결과 : illua 함수를 호출할 때 this바인딩자바스크립트에서 함수 내부 코드에서 사용된 this는 전역 객체에 .. 2016. 10. 17.
'함수호출과 this #1' 함수와 프로토타입 체이닝 argument 객체매개변수(인자) 개수가 정확하게 정해지지 않은 경우에 사용전달된 인자의 개수에 따라 서로 다른 처리를 해줘야 하는 경우에 사용 function func(){var result;for(var i = 0; i < argument.length; i++){result += arguments[i];}return result;}func(1, 3, 5);; //결과 : 9func(1, 3);; //결과 : 4func(); //결과 : undefined *자바스크립트는 함수에서 선언한 인자 수에 상관없이 호출가능function func(x, y){return x+y;}func(1, 3, 5); //결과 : 4func(1, 3); //결과 : 4func(); //결과 : undefined argume.. 2016. 10. 16.