CHAPTER 19 Ensuring Correct Use of Method-Borrowing

WHAT’S IN THIS CHAPTER?            

  • Elegantly borrowing a function from another object
  • Using an aspect or code contract to qualify the borrower
  • Evaluating side effects on both borrower and donor

WROX.COM CODE DOWNLOADS FOR THIS CHAPTER

You can find the wrox.com code downloads for this chapter at www.wrox.com/go/ reliablejavascript on the Download Code tab. The files are in the Chapter 19 download and are individually named according to the filenames noted throughout this chapter.

In the last chapter, we developed Conference.polyfills.arrayForEach, which you could use to augment the capabilities of an old-style Array that lacked a forEach function of its own. The focus was on developing forEach itself; the plugging-in to Array was trivial and carefree:

Array.prototype.forEach = Conference.polyfills.arrayForEach;

Carefree? Really?

One is reminded of the eager but untrained Luke Skywalker, who tells Jedi master Yoda, “I am not afraid.”

Yoda replies gravely, “You will be. You will be.”

What’s to be afraid of? Before you venture into the dangerous territory of method-borrowing, you must be prepared to answer three questions.

  • What does the method require of the borrowing object?
  • What effect will executing the method have on the borrowing object?
  • What might its execution do to the donor object?

Look again at Conference.polyfills.arrayForEach (with parameter-checking omitted). How would you answer those three questions?

Conference.polyfills.arrayForEach ...

Get Reliable JavaScript: How to Code Safely in the World's Most Dangerous Language now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.