Actually, your first bit of code doesn’t break. It doesn’t *work*, but it doesn’t result in any error. “this.someUndefinedThing()” would result in an error, but comparing a variable to “this.someUndefinedThing” does not throw an error.
Also, while bind is cool, it’s been made obsolete by ES6's arrow syntax. This is a good thing. :)