4 JavaScriptの機能について学んだこと


謝辞:この記事は、ダグラスCrockford(2008)による本「JavaScript:良い部分」に基づく私の読書ノートです.25から40ページ

関数呼び出しの4パターンがあります
関数呼び出し、あるいは関数呼び出しという用語は単に任意の関数への「エントリポイント」です.
関数呼び出しの4つのパターンは、この“”が初期化されている点で異なります.
すべての関数に含まれる追加のパラメーターです.
方法
機能
コンストラクタ
適用
関数がオブジェクトのプロパティとして格納されている場合
関数がオブジェクトのプロパティでない場合
新しい接頭辞で関数を起動すると
applyメソッドで関数が定義されている場合
"これ"はそのオブジェクトに制限されます.したがって、オブジェクトのプロパティを取得または変更するために使用できます
グローバルオブジェクトに制限されますしたがって、アクセス固有のオブジェクトのプロパティはありません
これは新しいオブジェクトに制限されています
applyメソッドに渡される配列に“this”が制限されます

引数
"引数"は別のボーナスパラメータです.
“引数”を使用すると、関数は“無制限”パラメータを取ることができます
以下は本31ページのコードスニペットの例です.

var sum = function(){
  var i, sum = 0;
  for (i = 0; i < arguments.length; i ++) {
    sum += arguments[i]; // Example usage of argument
  }

  return sum;
}

例外
例外は、異常な災難を扱うのを許します;つまり、予期しないことが起こるとき.これは関数の予期しないことを定義する必要があることを意味します.
以下は本32ページのコードスニペットの例です.

var add = function (a, b) {
  // We define what's unexpected here and what to throw when this happen
  if (typeof a !== 'number' || typeof b !== 'number') {
    throw { 
      name: 'TypeError',
      message: 'add needs numbers'
    };
  }
    return a + b;
}

// Make a try_it function that calls the new add
// function incorrectly.
var try_it = function ( ) {
  // We run the function in the try block
  try {
    add("seven");
  } 
  // And handle the exception in the catch block
  catch (e) { 
      document.writeln(e.name + ': ' + e.message);
  }
}
try_it( );


コールバック
コールバックを使用すると、非ブロッキング非同期関数を書くことができますつまり、プログラムは何かを完了するのを待つ必要はありません.
以下は、本40ページのコードスニペットの例です.

request = prepare_the_request( ); // This function will take time; hence could end up blocking the program

// By passing it as a function parameter; send_request_asynchronously will be called when response (from prepare_the_request()) is available
send_request_asynchronously(request, function (response) {
  display(response);
});

これらはJavaScript関数について学んだ4つの新しいことです.その本にはもっと多くの概念がある.しかし、私はまだ私自身の言葉で十分にそれらを理解するために苦労している.今のところ、これらの4つは私が理解し、すぐに使用できる概念です.