So I showed my confusing problem detailed in this last post to Dave Herman, who after an initial surprise, said that this was probably due to ES4 expansions method binding — that is, o.f sometimes closes over this, but sometimes not.
Dave pointed out that in trade-offs between consistency and convenience, the latter sometimes wins, particularly when changes affect thousands and millions of people. But it’s not clear to me how convenient this is; it’s a tiny shortcut for those who know about it, but it’s very fragile. I’d liken it to operator precedences: in only a few cases do people take advantage of the ordering, so arithmetic expressions are generally just written out with parentheses for clarity.
OpenLaszlo has an LzDelegate class that takes an instance and a method name (as a string) – it’s essentially a poor man’s closure. I always delegates were an answer to some vagary in our class system, but it turns out that they have a purpose – don’t depend on
Bah—the blog software ate my <code> in a way I didn’t intend.