あなたはJSを知りません:要約-第1章と第2章


  • 匿名関数の使用を避ける最善の方法は、完全に自己参照を必要とし、代わりに名前付き関数を使用します.
  • call ()私たちは、関数オブジェクト自身で「この」ポイントを確実にします.
  • 内部のスコープは、利用可能な識別子のそれぞれに対してプロパティを持つオブジェクトのようです.しかし、スコープ“オブジェクト”はJavaScriptコードにアクセスできません.それはエンジンの実装の内側の部分です.
  • 「これ」は著者の時刻結合ではなく、実行時結合である.
  • 関数が実行されると、コンテキストが実行コンテキストとして知られて作成されます.
  • 「これ」は、その呼び出しサイトに完全に基づいて、各々の機能呼び出しのためになされる結合です.
  • ボクシング-単純な原始値(Boolean,num,String)を“この”バインディングとして渡すと、プリミティブ値はオブジェクト形式でラップされます.
  • JavaScriptのコンストラクタは、新しい演算子で呼び出される正規関数です.
  • これを決定する4つの規則
    関数がnewと呼ばれるならば、それは新しい結合です.
    関数を呼び出したり、ハードバインディングでエンコードしたりエンコードしたりすると、明示的にバインドされます.
    コンテキストオブジェクトを持つ関数は、暗黙のバインドカテゴリ
    それ以外の場合は、デフォルトのバインド.
  • 矢印関数はこれらの規則を使用しません.これらは“fat - row”演算子“=>”を使用する関数です.矢印関数の字句結合は上書きできません.
  • NULLまたは未定義のパラメータを呼び出したり適用したりバインドしたりすると、これらの値は無視されます.これは関数への引数として渡す配列を広げたい場合だけです.これは副作用を引き起こすことができます、したがって、我々はDMZ(非武装地帯)オブジェクトを使います.
  • $ var ø = Object.create(null)
    $ foo.apply(ø, [2,3])
    ~~~
    
    --------------------------------------------------------------
    If you want similar content, then visit https://iaminnovativecoder.com
    
    Follow me on : 
    YouTube - https://youtube.com/InnovativeCoder
    Instagram - https://instagram.com/innovative_coder