An explicit argument is a value supplied directly by the caller. In data-oriented programming, functions receive the data they manipulate instead of finding state through an object. section 2.3
Making library state visible
Instead of letting getBookLendings read library state through this, pass it directly: getBookLendings(libraryData, userId, memberId). The function’s dependencies are now visible in its signature. section 2.3
The design shift is small in syntax but broader in structure:
- Object-oriented methods treat object state as an implicit argument. section 2.3
- Data-oriented module functions remain stateless and usually receive manipulated data as their first argument. section 2.3
Listing 2.1 The signature of getBookLendings
class Library {
static getBookLendings(libraryData, userId, memberId) {
}
}
Inspect the Library method signature with libraryData exposed as its first argument. section 2.3

