ホームページ php教程 php手册 js上で通常の関数を呼び出す方法をコードで添付します

js上で通常の関数を呼び出す方法をコードで添付します

Jun 13, 2016 pm 12:28 PM
es コード 関数 関数 増加 提案 方法 通常 移行 これ

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 つのメソッドは、コンテキスト パラメーターを完全に無視することができ、同様の通常のオブジェクトが得られます。 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 & lt; projecth; i) {
if (if i in this && func.call(context, this[i], i, this))
results.push(this[i])
}
結果を返します。 >}

if (!Array.prototype.every) {
// 配列内の各要素が提供されたテスト関数を満たす場合は true を返します。
Array.prototype.every = function (func, context) {
for (var i = 0; i if (i in this && !func.call( context, this[i], i, this))
return false;
return true;
if (!Array.prototype.some) {
// true を返します。配列内の少なくとも 1 つの要素が提供されたテスト関数を満たすかどうか。
Array.prototype.some = function (func, context) {
for (var i = 0; i if (i in this && func.call(context) , this[i], i, this))
true を返す;
};

if (!Array.prototype.map ) {
// 配列を返します。既存の配列の各要素は、指定された関数の戻り値を呼び出します。
Array.prototype.map = function (func, context) {
var results = [];
for (var i = 0; i if ( i in this)
results[i] = func.call(context, this[i], i, this);
}
は結果を返します。 exec メソッド true および false への適切な型変換を行って、配列または null 値を返します。上記のコードでは、["a","b","ab","ba"].filter(/) のように使用できます。 ^a/ )、「a」で始まるすべての値を返します: ["a","ab"]。

実際、Array.prototype.filter は Firefox に実装されています。これは、exec の間接呼び出しがこのブラウザですでに機能しているためです。ただし、フィルターに RegExp.prototype.call メソッドが追加されていない場合、ブラウザーをまたいで実行することはできません。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

WeChat で削除された連絡先を回復する方法 (簡単なチュートリアルでは、削除された連絡先を回復する方法について説明します) WeChat で削除された連絡先を回復する方法 (簡単なチュートリアルでは、削除された連絡先を回復する方法について説明します) May 01, 2024 pm 12:01 PM

WeChat で削除された連絡先を回復する方法 (簡単なチュートリアルでは、削除された連絡先を回復する方法について説明します)

モバイルドラゴンの卵を孵化させる秘密が明らかに(モバイルドラゴンの卵をうまく孵化させる方法を段階的に教えます) モバイルドラゴンの卵を孵化させる秘密が明らかに(モバイルドラゴンの卵をうまく孵化させる方法を段階的に教えます) May 04, 2024 pm 06:01 PM

モバイルドラゴンの卵を孵化させる秘密が明らかに(モバイルドラゴンの卵をうまく孵化させる方法を段階的に教えます)

携帯電話の文字サイズの設定方法(携帯電話の文字サイズを簡単に調整できます) 携帯電話の文字サイズの設定方法(携帯電話の文字サイズを簡単に調整できます) May 07, 2024 pm 03:34 PM

携帯電話の文字サイズの設定方法(携帯電話の文字サイズを簡単に調整できます)

golang 関数で新しい関数を動的に作成するためのヒント golang 関数で新しい関数を動的に作成するためのヒント Apr 25, 2024 pm 02:39 PM

golang 関数で新しい関数を動的に作成するためのヒント

C++ 関数の命名におけるパラメーターの順序に関する考慮事項 C++ 関数の命名におけるパラメーターの順序に関する考慮事項 Apr 24, 2024 pm 04:21 PM

C++ 関数の命名におけるパラメーターの順序に関する考慮事項

携帯電話の画面を保護する携帯電話のスクリーンプロテクターの選び方 (携帯電話のスクリーンプロテクターを購入する際のいくつかの重要なポイントとヒント) 携帯電話の画面を保護する携帯電話のスクリーンプロテクターの選び方 (携帯電話のスクリーンプロテクターを購入する際のいくつかの重要なポイントとヒント) May 07, 2024 pm 05:55 PM

携帯電話の画面を保護する携帯電話のスクリーンプロテクターの選び方 (携帯電話のスクリーンプロテクターを購入する際のいくつかの重要なポイントとヒント)

Golang 正規表現を使用して複数の単語または文字列を照合するにはどうすればよいですか? Golang 正規表現を使用して複数の単語または文字列を照合するにはどうすればよいですか? May 31, 2024 am 10:32 AM

Golang 正規表現を使用して複数の単語または文字列を照合するにはどうすればよいですか?

Java で効率的で保守しやすい関数を記述するにはどうすればよいでしょうか? Java で効率的で保守しやすい関数を記述するにはどうすればよいでしょうか? Apr 24, 2024 am 11:33 AM

Java で効率的で保守しやすい関数を記述するにはどうすればよいでしょうか?

See all articles