새로운 Backbone.Model () 대 Backbone.Model.extend ()
저는 JS 및 Backbone을 처음 사용합니다.
이 둘의 차이점은 무엇입니까?
TestModel = new Backbone.Model({ title: "test title" })
TestModel = Backbone.Model.extend({ title: "test title" })
간단히 말해서 "집의 프로젝트와 집 자체의 차이"로 설명 할 수있는 기본적인 차이점이 있습니다.
전문 프로그래머의 경우 "new Backbone.Model"은 개체 인스턴스를 반환하지만 "Backbone.Model.extend"는 생성자 함수를 반환한다고 말합니다.
FIRST : 새 개체 (예 : 집)
var TestModel = new Backbone.Model({ title: "test title" });
구조 (메서드 및 변수)가 다른 곳에서 정의 된 새 개체를 만듭니다. 객체는 언어의 "모든 비 기본 항목"으로 간주 될 수 있습니다. 여기서 "기본 항목"은 정수, 문자 등과 같은 기본 유형을 의미합니다.
중괄호 {}에서 일부 변수 또는 메서드의 값을 전달합니다. Tomasz Nurkiewicz가 이전에 설명했듯이 생성자라고합니다. 모델이 다른 곳에서 설명 된 새 객체를 '구성'할 수 있기 때문입니다.
알려진 예를 들자면 :
var myArray = new Array();
이는 다른 곳에서 정의 된 비원시 객체 인 새 Array를 만들고 있음을 의미합니다. 다음과 같이 작성할 수도 있습니다.
var myArray = new Array([1,2,3,4,5]);
그리고 주어진 숫자로 배열을 채 웁니다.
두 번째 : 기존 개체의 정의를 수정합니다 (예 : 집의 프로젝트).
와
var TestModel = Backbone.Model.extend({ title: "test title" })
VM에 매우 간단한 것을 말합니다. "기본으로 제공하는 객체는 매우 좋지만 더 많은 기능 / 속성을 구현하고 싶습니다." 따라서 "extend"절을 사용하여 기존 메서드 / 속성을 추가하거나 재정의하는 개체의 정의를 수정합니다.
예 : backbone.js 의 좋은 예 는 컬렉션의 비교 기능에 의해 제공됩니다. 정의하는 개체를 확장하면 "정렬 된 순서로 컬렉션을 유지하는 데 사용됩니다".
예:
myCollection = Backbone.Collection.extend({
comparator:function(){
return item.get('name');
}
});
일반적으로
'backboning'(backbone.js 프레임 워크를 사용하여 개발) 할 때해야 할 일은 다음을 사용하여 주어진 객체 (예 : View)를 확장하는 것입니다.
window.ButtonView = Backbone.View.extend({
btnText:'nothingByDefault',
myNewMethod:function(){
//do whatever you want, maybe do something triggered by an event, for instance
}
});
그런 다음 코드의 다른 곳에서 사용합니다. 처리하려는 각 버튼에 대해 한 번씩 객체에 제공 할 모든 값을 중괄호 안에 포함합니다.
[...]
var submitBtn = new ButtonView({btnText:"SubmitMe!"}),
var cancelBtn = new ButtonView({btnText:"Erase All!"});
....도움이 되었기를 바랍니다...
두 번째 경우 TestModel
는 나중에 여러 번 사용하여 모델의 인스턴스를 만들 수있는 생성자입니다.
var model = new TestModel();
그러나 통과 title
에 extend
다른 의미를가집니다. 다음을 사용해야합니다.
var TestModel = Backbone.Model.extend({defaults: { title: "test title" }});
또는 객체를 만들 때 모델 속성을 전달합니다.
var model = new TestModel({ title: "test title" });
반면에 첫 번째 경우 TestModel
는 이미 모델의 인스턴스입니다 (따라서 testModel
JavaScript 명명 규칙을 따르도록 이름 을 지정 해야합니다 ).
var testModel = new Backbone.Model({ title: "test title" })
참고 URL : https://stackoverflow.com/questions/9093209/new-backbone-model-vs-backbone-model-extend
'programing tip' 카테고리의 다른 글
OS X에서 Java 8 용 무제한 강도 JCE를 설치하는 방법은 무엇입니까? (0) | 2020.12.06 |
---|---|
뛰어난 Common Lisp 코드의 예? (0) | 2020.12.05 |
git : 매달려있는 얼룩 (0) | 2020.12.05 |
Swift Error : 자체 초기 값 내에서 사용되는 변수 (0) | 2020.12.05 |
애니메이터와 애니메이션의 차이점은 무엇입니까? (0) | 2020.12.05 |