AngularJS의 범위 프로토타입/프로토타입 상속의 미묘한 차이는 무엇인가요?
JavaScript의 프로토타입 상속
- 프로토타입 상속은 객체가 프로토타입에서 속성을 상속하는 메커니즘입니다.
- AngularJS에서 범위는 일반적으로 프로토타입적으로 상위 범위에서 상속됩니다.
예외
- 범위가 있는 지시어: { ... } create isolate 프로토타입적으로 부모로부터 상속받지 않는 범위
뉘앙스
하위 범위 속성 숨기기
- 일반적으로 하위 범위 속성을 변경해도 상위 범위에는 영향을 미치지 않습니다.
- 그러나 양방향 데이터를 하위 범위에서 상위 범위의 기본에 바인딩하는 경우 하위 범위는 해당 속성을 숨기는 자체 속성을 생성합니다. 동일한 상위 속성 name.
솔루션
- 상위 범위(예: parentObj.someProp)의 기본 요소에 대한 객체를 사용합니다.
- 사용 $parent.parentScopeProperty.
- 에서 함수를 정의합니다. 상위 범위를 만들고 하위 범위에서 호출합니다.
Ng-repeat
- Ng-repeat는 하위 범위를 생성하고 항목 값을 하위 범위에서 새 속성에 할당합니다. 해당 하위 범위.
- ng-repeat 하위에서 상위 범위 배열의 기본 요소에 바인딩 범위는 상위 배열과 독립적인 하위 범위 속성을 생성합니다.
- 이를 방지하려면 상위 범위의 객체 배열을 사용하고 ng-repeat의 객체 속성에 바인딩하세요.
범위 격리
Transcluded Scopes
- transclude: true를 사용하여 지시문에 의해 생성됩니다.
- 프로토타입은 다음에서 상속됩니다. 상위 범위.
- 형제 둘 다 지시문에 존재하는 경우 범위를 분리합니다.
요약
- 대부분의 범위는 원형적으로 상위 범위에서 상속됩니다.
- 예외가 존재합니다. (예: 다음에 의해 생성된 격리 범위) 지시어.
- 알고 있어야 할 미묘한 차이에는 하위 범위 속성 숨기기 및 ng-repeat에 대한 특별 고려 사항이 포함됩니다.
위 내용은 AngularJS 범위에서 프로토타입 상속은 어떻게 작동하며 일반적인 함정은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!