강좌 & 팁
안녕하세요. 송기석입니다.
새해 복 많이 받으세요.
작년에 호출 패턴 중 메소드 호출 패턴과 함수 호출 패턴을 했습니다. 오늘은 나머지 생성자 호출 패턴과 apply 호출 패턴을 하겠습니다.
메소드 호출 패턴
함수를 new와 함께 호출하면, 호출한 함수의 프로토타입 속성의 값에 연결된 숨겨진 링크를 갖는 객체가 생성되고 this에 바인딩 됩니다.
// 생성자 함수 생성 var test = function (string) { this.status = string; }; // test의 모든 인스턴스에 get_status을 public 메소드를 줌 test.prototype.get_status = function () { return this.status; }; // test 인스턴스 생성 var mytest = new test('confused'); console.log(mytest.get_status()); // confused
생성자 함수를 사용하는 스타일은 권장 사항이 아닙니다.
apply 호출 패턴
자바스크립트는 함수형 객체지향 언어이기 때문에 함수는 메소드를 가질 수 있습니다.
apply 메소드는 함수를 호출할 때 사용할 인수들의 배열을 받아들입니다. 이 메소드는 this 값을 선택할 수 있도록 해줍니다. apply 메소드는 this에 묶이는 값과 매개변수들의 배열 매개변수 두 개가 있습니다.
var add = function (a, b) { return a + b; }; var test = function (string) { this.status = string; }; // test의 모든 인스턴스에 get_status을 public 메소드를 줌 test.prototype.get_status = function () { return this.status; }; // test 인스턴스 생성 var mytest = new test('confused'); console.log(mytest.get_status()); // confused */ var array = [3, 4]; var sum = add.apply(null, array); console.log(sum); // 7 var status_object = { status: 'A-OK' }; var status = test.prototype.get_status.apply(status_object); console.log(status); // “A-OK”
날씨가 매우 춥습니다. 감기 조심하시고 다음에 뵙겠습니다.