1. 3

  2. 2

    Taking his counter-example of the S3 object, I think both the author and the person he’s quoting are correct, and are thinking at different levels of abstraction. “Representing this thing, its state and its operations” and “Update the state of this thing” are both responsibilities that can be considered distinct from other responsibilities, and we can say that the “representing this thing” responsibility can be constructed by composing objects with finer-grained responsibilities including the “update this thing” object.

    In a language like JavaScript, that model is pervasive. A function is an object, and an object can have “methods” which are specified by composition of function objects.