--- title: Components.results slug: Mozilla/Tech/XPCOM/Language_Bindings/Components.results tags: - 'XPCOM:Language Bindings' - XPConnect translation_of: Mozilla/Tech/XPCOM/Language_Bindings/Components.results ---

Components.results は、js/src/xpconnect/src/xpc.msg にあるマクロの最初のパラメータとしてリストされた名前のプロパティを持つ、読み出し専用オブジェクトです。各オブジェクトの値はそのコンスタントの値に対応しています。

はじめに

Components.results は、よく知られた XPCOM の結果コードの名前をプロパティに持つオブジェクトで、それぞれの値は対応する結果コードに対応しています。このオブジェクトのプロパティは、未知の nsresult 変数をテストするのに利用したり、失敗を示すために「投げ」たりできます。

  if(something_unexpected_happened)
     throw Components.results.NS_ERROR_UNEXPECTED;

Components.results オブジェクトのプロパティは for...in ループを使って列挙できます。

使い方

nsISupports の実装

The standard nsISupports is usually implemented in JavaScript by using Components.results to get a failure return value if does not implement the given interface. Note the common use of an abbreviation for <code>Components.results, Cr:

const Ci = Components.interfaces, Cr = Components.results;

function Class()
{
  /* ... */
}
Class.prototype =
{
  /* ... */
  QueryInterface: function(id)
  {
    if (id.equals(Ci.IMyInterface))
      return this;
    throw Cr.NS_ERROR_NO_INTERFACE;
  }
};