백본 모델에서 초기화와 생성자의 차이점은 무엇입니까
백본 모델에서 초기화와 생성자의 차이점은 무엇입니까?
백본 모델 (ParentModel)을 확장 할 때 initialize 메서드를 사용하여 기본 속성을 설정합니다. 그러나 ParentModel을 기반으로 모델을 만들 때마다 생성자를 사용하여 초기 기능을 실행합니다. 나는 그것이 작동하기 때문에 이것을하지만 직장에서 누군가가 왜 내가 초기화와 생성자를 모두 사용하는지 물었고 그것이 작동하는 것 외에 좋은 대답이 없었습니다. 나는 그것을 알아 내기 위해 소스 코드를 읽는 데 시간을 할애 할 수 있었지만 여기에서 질문하고 올바른 답을 얻는 것이 훨씬 쉬웠습니다.
var ParentModel = Backbone.Model.extend({
initialize : function() {
// code here
},
});
var Model = ParentModel.extend({
constructor : function (options) {
Backbone.Model.prototype.constructor.call(this, options);
// code here
},
constructorBackbone이 구조를 설정하기 전에 실행됩니다. initialize구조의 constructor함수 내에서 호출 됩니다. 따라서 기본적으로 Backbone이 구조를 설정하기 전에 무언가를 보강해야하는 경우 Backbone이 구조를 constructor설정 한 후 무엇이든 보강해야하는 경우 사용하십시오 initialize.
( 주제에 대한 Github 토론에서 )
constructorBackbone이 자체 설정에 사용하는 기능입니다. 모델 생성, 이벤트 설정, 기타 모든 종류의 설정 수행. 메서드를 재정의하거나 섀도 잉하여 Backbone 코드가 실행되지 않도록하면 디버그하기 어려운 이상한 오류가 발생하므로이를 재정의 할 때는 매우주의해야합니다.
initialize반면에 Backbone이 내부 배관 작업이 끝나면 객체에 대해 호출하는 함수입니다. 정상적인 백본 기능을 방해하기 위해 특별히 의도 된 작업을 수행하지 않는 경우 initialize를 사용하십시오.
CoffeeScript를 사용하는 경우를 사용하는 것이 더 직관적 일 수 있습니다 constructor. (나를위한 것입니다). super그래도 항상으로 전화하십시오 .
'Program Club' 카테고리의 다른 글
| C ++에서 개체 파괴 (0) | 2020.11.14 |
|---|---|
| 'catch'블록없이 'try-finally'블록 사용 (0) | 2020.11.14 |
| iOS 개발을 위해 Xcode 대신 (또는 함께) Vim 사용 (0) | 2020.11.14 |
| var 키워드 뒤의 밑줄과 인터페이스 이름은 무엇을 의미합니까? (0) | 2020.11.14 |
| 배치 파일 실행 후 cmd 창을 자동으로 닫는 방법은 무엇입니까? (0) | 2020.11.14 |