If you are reading this book, you know that there is nothing simple about creating effective and cross-browser JavaScript code. In addition to the normal challenges of writing clean code, we have the added complexity of dealing with obtuse browser differences and complexities. To deal with these challenges, JavaScript developers frequently capture sets of common and reusable functionality in the form of JavaScript libraries. These libraries vary widely in approach, content and complexity, but one constant remains: they need to b e easy to use, incur the least amount of overhead, and be able to work across all browsers that we wish to target. e easy to use, incur the least amount of overhead, and be able to work across all browsers that we wish to target.