JavaScript - function as an object property

后端 未结 3 1398
伪装坚强ぢ
伪装坚强ぢ 2021-02-01 05:52

Hey everyone, this is #23 from John Resig Advanced JavaScript http://ejohn.org/apps/learn/#23, called

What happens if a function is an object pr

3条回答
  •  野的像风
    2021-02-01 06:31

    1. Yes, katana is an object (created using the { ... } notation). "use" is the name of the property of the object whose value will be the anonymous function (which is also an object).

    2. The function inverts the value of isSharp (so from true to false or false to true).

    3. It is asserting that isSharp is something which does not evaluate to true (this is nearly everything except undefined, null, false, 0, etc). In this case, since isSharp is always either true or false, it is asserting that it is false.

    The main point (and cool part) of the sample is this line:

    katana.use();
    

    This first fetches the value of the "use" property from the katana object (that's the katana.use part). The value is the anonymous function from before. Then, that function is executed (that's the () part). The really cool part is that it is executed on behalf of the katana object -- that means this in the anonymous function is a reference to the katana object when it's called that way.

提交回复
热议问题