At a high level, data binding is a software design pattern specifying the ability to directly tie changes to your underlying application data, or Model, to the View by visually reflecting those changes automatically. This can be done by any number of means using JavaScript, and it is really dependent upon what version of JavaScript you are using and its abilities and limitations. In the case of a web application, those abilities and limitations are governed by the user's browser, of course, and this is why there are so many implementations of data binding in the JavaScript community.
If you have worked with any popular JavaScript frameworks, or at least have read about any of them, you have probably heard of data binding. You also have probably never attempted to implement it on your own, considering the number of libraries and frameworks out there that provide this capability. The advantage that some of these implementations give you is cross-browser compatibility by...