ECMAScript 4 提案では、この機能が ES4 仕様に追加されると述べられていましたが、後の ES4 ディスカッション メーリング リストの議論で、この提案は放棄される可能性があります。
ただし、RegExp.prototype に call メソッドと apply メソッドを追加することで、これらのメソッドを同様に実装できます。機能設計に役立つだけでなく、関数と正規表現の両方に有効なダックタイプ コードの実装も可能になります。そこで、これらのメソッドを追加しましょう。
RegExp.prototype.call = function (context, str) {
return this.exec(str)
};
RegExp.prototype.apply = function (context, args) {
return this.exec(args[0]) );
}; 上記の 2 つのメソッドは context パラメータを完全に無視するので、null またはその他のオブジェクトをコンテキストとして送信でき、同様に通常の exec メソッドの戻り値が得られます。上記の方法を使用すると、どのような状況でも正規表現や関数を通常どおりに使用することが非常に簡単になります。これらのようないくつかの明白な例は、JavaScript 1.6 での配列の反復に役立ちます。次のフィルター、every、some、map メソッドは、ブラウザー間で実行できます。
if (!Array.prototype.filter) {
// 配列を返します。指定されたフィルター関数が true を返した場合は、既存の配列の要素を返します。
Array.prototype.filter = function (func, context) {
var results = [];
for (var i = 0; i
results.push(this[i]);
if }; each) {
// 配列内の各要素が指定されたテスト関数を満たす場合、 true を返します。
Array.prototype.every = function (func, context) {
for (var i = 0; i
要素は提供されたテスト関数を満たします。
Array.prototype.some = function (func, context) {
for (var i = 0; i
Array.prototype.map = function (func, context) {
var results = [];
for (var i = 0; i
results[i ] = Func.Call (Context, this [i], i, this);
}
Return Results
}; EXEC メソッドは配列または NULL 値を返すため、正しく True と False に変換されます。上記のコードでは、["a","b","ab","ba"].filter(/^a/) のように使用できます。これは、「a」で始まるすべての値を返します: [ 「a」、「ab」]。
実際、Array.prototype.filter は Firefox に実装されています。これは、exec の間接呼び出しがこのブラウザですでに機能しているためです。ただし、フィルターに RegExp.prototype.call メソッドが追加されていない場合、ブラウザーをまたいで実行することはできません。
上記は、cf が win7 でフルスクリーンできない問題の解決策を紹介しており、js で通常の関数を呼び出す方法がコードとともに添付されています。これには、cf が win7 でフルスクリーンできない問題の解決策も含まれています。友人の参考になれば幸いです。 PHP チュートリアルに興味がある人。