Program Club

백본 모델에서 초기화와 생성자의 차이점은 무엇입니까

proclub 2020. 11. 14. 11:15
반응형

백본 모델에서 초기화와 생성자의 차이점은 무엇입니까


백본 모델에서 초기화와 생성자의 차이점은 무엇입니까?

백본 모델 (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그래도 항상으로 전화하십시오 .

참고 URL : https://stackoverflow.com/questions/10118988/whats-the-difference-between-initialize-and-constructor-on-a-backbone-model

반응형