Custom Elements, one of the most important spec under web components umbrella, enables web developer to define new types of HTMLElement, which can have it’s own markup(HTML), behavior(JS) and style(CSS). These newly created custom HTML tags can be reused as complex components in multiple websites and web apps.

Polymer provides a way to do web development based on encapsulated custom elements. Its uses Shadow DOM for encapsulating content of element and we get scoped styles. Also polymer makes the custom elements totally interoperable with x-tags and vanilla custom elements.

HTML Imports (or simply imports) is one of the piece from Web Components model, which allows you to load full external html document into your web page and that too without ajax. Imports provide convention for bundling HTML/CSS/JS into single deliverable component. Using imports you can create custom elements and then use them as new tags in your master document.

The most powerful keyword in JavaScript is this and many people get tripped by it. People expect it to work like this in Java, but understand that JavaScript is not Java. Unfortunately understanding behavior of this is little harder if you are new to JavaScript, but certainly its not a magic. And as you start getting to used to this, its rule are actually very simple.