top | item 7586612

(no title)

maxbucknell | 12 years ago

At the end of the article, it is demonstrated that this can happen even with strict equality by overriding the getters. Any language with getter/setter support can do this. Operator overloading can be used for even nefarious ends.

The point is that side effects in code are dangerous, and can be used to mislead a reader.

If this happens, it is not the fault of JavaScript. Anyone who writes code like that for purposes other than demonstration or learning is a moron.

discuss

order

mikeash|12 years ago

Not all languages with getter/setter support will invoke them automatically like this.

For example, it's not possible in Java or Objective-C to make an expression of the form a == b, where a and b are plain variables, have any side effects.

tyilo|12 years ago

In Obj-C you can if you would allow `a.prop == b.prop`.