이 구문을 사용하는 백본 JS의 장점/이유는 무엇 속성백본 JS 차이는
//using a Model instance called model
model.get('attribute')
하지
model.attribute
임은 백본을 사용하기 시작
그리고 나는 항상 속성에 직접 액세스하려고합니다.
이 구문을 사용하는 백본 JS의 장점/이유는 무엇 속성백본 JS 차이는
//using a Model instance called model
model.get('attribute')
하지
model.attribute
임은 백본을 사용하기 시작
그리고 나는 항상 속성에 직접 액세스하려고합니다.
소스 코드를 보면 get
함수는 this.attributes[name]
을 호출합니다.
http://backbonejs.org/docs/backbone.html#section-31
이점은, 그러나, 적어도 두 가지이다 :
1)가)
2를 오버라이드 (override) 할 수있는 기능을 작성하는 코드의 양을 줄여 일관된 API get
메서드를 사용하고보다 복잡한 액세스 제어를 제공합니다.
예를 들어 중첩 모델 기능을 제공하기 위해 모델 작동 방식을 재정의하는 백본에 대한 플러그인이 몇 가지 있습니다.
model.get("submodel.attr")
을하고는 submodel
하위 모델의 attr
을 구문 분석이 있습니다 그들이 당신이 같은 get 메소드를 작성할 수 있도록하는 것이 매우 쉽다. get 메소드가 없으면 API와의 일관성을 유지하는 것이 더 어려울 것입니다.
이 기본 이점은 캡슐화입니다. JavaScript가 getter 및 setter에 대한 코드를 작성하는 데 필요한 실제 get/set 속성을 제공 할 때까지는 Backbone의 get
및 set
과 같은 해결 방법이 필요합니다.
음 .. 처음에는 model.attribute
이 맞지 않습니다. 화재가 발생하기 위해서는 change
이벤트를 받으려면 model.set()
이 필요합니다. model.get(attribute)
대신에
model.attributes[attribute]
을 사용하는 습관을 갖고 있다면 이것을 잊을 가능성이 높습니다. user.name ('name') vs'user.name'가 코드 양을 줄이는 방법을 명확히 할 수 있습니까? –그는 당신이 더 길다는'user.attributes [ 'name']'대신에'user.get ('name')'을 사용했다는 것을 알 것입니다. 그러나 중첩 모델에 액세스하려면 다음 구문을 사용합니다.'user.attributes.name.first' – orad