티스토리 뷰
발생일: 2014.03.01
키워드: backbone, 백본, extend, defaults
문제:
extend와 defaults 를 어떻게 구분해 사용하면 좋을까 고민하던 중에, 최근 팀에서 사용 방법을 정의했다.
해결책:
extend는 주로 프로토타입 확장에서 사용했었는데,
var fooPrototype = {
getName: function () {},
setName: function () {}
};
var barPrototype = _.extend(fooPrototype, {
getName: function () {}
});
// 하지만 이렇게 하면 `fooPrototype`의 값도 덮어쓰게 된다.
fooPrototype.getName === barPrototype.getName; //—> true
// 우린 주로 빈 객체에 할당하는 방법으로 처리했었는데,
var barPrototype = _.extend({}, fooPrototype, {
getName: function () {}
});
fooPrototype.getName === barPrototype.getName; //—> false
// 아래처럼 _defaults 로 처리하면 더 간단한다.
var barPrototype = _.defaults({
getName: function () {}
}, fooPrototype);
fooPrototype.getName === barPrototype.getName; //—> false
반응형
댓글
공지사항