Good catch on the direct eval operator. I don't care much what we call it or which way the truth value goes, as long as it gives the same answer for 1) bound functions 2) fat arrow functions 3) functions that neither mention "this" nor contain a direct eval operator in their body.
On Wed, May 30, 2012 at 2:36 PM, Allen Wirfs-Brock <[email protected]>wrote: > > On May 30, 2012, at 2:18 PM, Mark S. Miller wrote: > > On Wed, May 30, 2012 at 10:32 AM, Allen Wirfs-Brock <[email protected] > > wrote: > >> >> ... >> >> >> However, there might be some utility (at least for debugging) in having a >> Function.prototype.isThisBound method. It would return true for arrow >> functions and functions created via Function.prototype.bind >> > > I agree that such a predicate would be useful, but the useful predicate > should also give "true" for functions that don't mention "this". Thus, > "isThisBound" may not be the right name. What it really means is 'Can this > function sense the "this" binding with which it is called?" If we call it > "canSenseThis", then clearly we should also reverse the truth value. > > > Or course, a |this| reference might be obscured, for example: > () => eval(funcThatReturnsThisString()+".propName") > > I think we agree that all fat arrow functions and all functions created > using bind have fixed |this| bindings, regardless of whether or not they > actually contain a static reference to |this| > > From that perspective I think "isThisBound" or just "isBound" is how most > people will think about it. > > If you want to reverse the sense, I think it would be something like > "hasDynamicThis" or perhaps even "isMethod" (where by definition methods > would be functions with dynamic |this| bindings). > > "canSenseThis" doesn't do a lot me. > > Allen > > -- Cheers, --MarkM
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

