1 개요[ | ]
- mixin
- 믹스인
- "메소드가 딸린 인터페이스"
- 다른 클래스들의 메소드 조합을 포함하는 클래스
- 원래의 클래스에 부가적인 기능을 덧붙여 확장하는 것
- 상속과 유사한 면이 있으나 기존의 클래스를 직접 변경·확장한다는 점이 다름
2 예시: 자바스크립트[ | ]
JavaScript
Copy
var Halfling = function (fName, lName) {
this.firstName = fName;
this.lastName = lName;
}
var NameMixin = {
fullName: function () {
return this.firstName + ' ' + this.lastName;
},
rename: function(first, last) {
this.firstName = first;
this.lastName = last;
return this;
}
};
var sam = new Halfling('Sam', 'Lowry');
var frodo = new Halfling('Freeda', 'Baggs');
// 믹스인 적용
_.extend(Halfling.prototype, NameMixin);
// 이제 rename 메소드 사용 가능
sam.rename('Samwise', 'Gamgee');
frodo.rename('Frodo', 'Baggins');
JavaScript
Copy
var EnumerableFirstLast = (function () { // function based module pattern.
var first = function () {
return this[0];
},
last = function () {
return this[this.length - 1];
};
return function () { // function based Flight-Mixin mechanics ...
this.first = first; // ... referring to ...
this.last = last; // ... shared code.
};
}());
// 배열 프로토타입에 적용
EnumerableFirstLast.call(Array.prototype);
// 배열만 선언해도 first(), last() 메소드 사용 가능
a = [1, 2, 3];
a.first(); // 1
a.last(); // 3
3 같이 보기[ | ]
4 참고[ | ]
편집자 Jmnote Jmnote bot
로그인하시면 댓글을 쓸 수 있습니다.