4

おそらくばかげた質問で申し訳ありませんが、ドキュメントを読むときにギャップを残すのが好きではないので、寛大にお願いします.

developer.mozilla.orgからの次のスニペットを検討してください。

void initCustomEvent(
    in DOMString type,
    in boolean canBubble,
    in boolean cancelable,
    in any detail
);

私の知る限り、JavaScript には のような構文はありませんvoid。しかし、これは単純に、メソッドが何も返さないことを伝えるための規則です。(私が間違っている場合は修正してください)。

しかし、それはどういう意味ですか?

4

1 に答える 1

4

これは、パラメーターが「入力パラメーター」であることを意味します。つまり、関数がその引数またはメモリ内のその場所にデータを追加する「出力パラメーター」とは対照的に、値は関数に入ります。コードを呼び出します。

「out-parameter」を含むMDN ドキュメントの例を次に示します。

void get(
  in string prop,
  in nsIIDRef iid,
  [iid_is(iid),retval] out nsQIResult result
);

JavaScript の例:

function range(n, result) {
    for (var i = 0; i < n; i++) {
        result.push(i);
    }
}

// to be called as
var foo = [];
range(10, foo);
console.log(foo); // shows [0,1,2,3,4,5,6,7,8,9]

「out-parameters」は JavaScript では一般的ではありませんが、Firefox が開発されている言語である C または C++ ではより一般的であるようです。

cPu1で示唆されているように、これは JavaScript 構文ではなく、単なるインターフェースの説明です。Mozilla はXPIDLを開発し、使用しました。ドキュメントから:

in各メソッド パラメータは、 、out、またはの 3 つのモードのいずれかで指定できますinout。パラメータは基本的に補助的なout戻り値ですが、これらはスクリプト コンテキストから使用するのがやや面倒なので、合理的であれば避けるべきです。inoutパラメーターは、メソッドの結果として値が変更される可能性のある in パラメーターです。これらのパラメータは使用するのがやや面倒であり、可能な限り避けるべきです。


そうですvoid、関数は何も返さないことを意味しますが、void演算子は存在します(ただし、インターフェイスの説明とは関係ありません)。

于 2013-06-18T17:56:46.927 に答える