0

次のajaxリクエストで、誰か説明してください(tryMS)

function createRequest() {
  try {
    request = new XMLHttpRequest();
  } catch (tryMS) {
    try {
      request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (otherMS) {
      try {
        request = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (failed) {
        request = null;
      }
    }
  } 
  return request;
} 

(tryMS) と (otherMS) は javascript の一部ですか、それともコードで使用される単なる一般的な引数ですか?特定の機能はありますか? その値がどこから来るのかという引数の場合。

4

2 に答える 2

1

この場合、tryMSおよびotherMSは単なる変数名です。それらを任意の有効な変数名に置き換えることができ、ロジックはまったく同じになります。この場合、実行時にそれらが表すオブジェクトはException、try-catchステートメントのcatch句で使用されるサブクラスです。

try-catch-finallyの詳細については、こちらをご覧ください。

ここで使用されている命名規則には同意しませんが、変数名は基本的に、使用されているブラウザーに基づく制御の流れを表しています。たとえば、XMLHttpRequestオブジェクトの作成によって例外が発生する場合は、ActiveXObject-を使用してMicrosoftブラウザ用のAJAX手法を試す必要があります。したがって名前はtryMSです。

于 2012-05-01T13:59:38.933 に答える
1

Internet Explorer には xhr がありませんXmlHttpRequest。そのための独自のオブジェクトがあります。このコードはブラウザにとらわれないようにしています。つまり、ブラウザに関係なく動作しようとしています。createRequestメソッドはXMLHttpRequest. それが失敗した場合、最初の を作成しようとしますActiveXObject。それが失敗すると、次のアクティブな x オブジェクトにフォールバックします。

(tryMS) と (otherMS) は javascript の一部ですか、それともコードで使用される単なる一般的な引数ですか?特定の機能はありますか? その値がどこから来るのかという引数の場合。

try/catchステートメントはエラーを catch ブロックに渡します。したがってtryMSotherMSおよびfailedはすべて、エラーを説明する文字列への参照にすぎません。

于 2012-05-01T13:57:19.730 に答える