# Developer Guide: Scopes

An Angular scope is a JavaScript object with additional APIs useful for watching property changes, Angular scope is the model in Model-View-Controller paradigm. Instances of scope serve as the context within which all expressions get evaluated.

You can think of Angular scope objects as the medium through which the model, view, and controller communicate. Scopes are linked during the compilation process with the view. This linkage provides the contexts in which Angular creates data-bindings between the model and the view.

In addition to providing the context in which data is evaluated, Angular scope objects watch for model changes. The scope objects also notify all components interested in any model changes (for example, functions registered through `$watch`, bindings created by `ng-bind`, or HTML input elements).

Angular scope objects:

- Link the model, controller and view template together.
- Provide the mechanism to watch for model changes (`$watch`).
- Apply model changes to the system (`$apply`).
- Provide the context in which expressions are evaluated (`$eval`).

### Related Topics

- Understanding Scopes
- Scopes Internals

### Related API

- `Angular Scope API`