Chapter 11. Don’t Modify Objects You Don’t Own
One unique aspect of JavaScript is that nothing is sacred. By default, you can modify any object you can get your hands on. It doesn’t matter if the object is developer-defined or part of the default execution environment—it’s possible to change that object as long as you have access to it. This isn’t a problem in a one-developer project, in which exactly what is being modified is always known by the one person who’s in control of all code. On a multiple-developer project, however, the indiscriminate modification of objects is a big problem.
What Do You Own?
You own an object when your code creates the object. The code that
creates the object may not have necessarily been written by you, but as
long as it’s the code you’re responsible for maintaining, then you own
that object. For instance, the YUI team owns the YUI object, and the Dojo team owns the dojo object. Even though the original person who
wrote the code defining the object may not work on it anymore, the
respective teams are still the owners of those objects.
When you use a JavaScript library in a project, you don’t
automatically become the owner of its objects. In a multiple-developer
project, everyone is assuming that the library objects work as they are
documented. If you’re using YUI and make modifications to the YUI object, then you’re setting up a trap for
your team. Someone is going to fall in, and it’s going to cause a
problem.
Remember, if your code didn’t create the ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access