ホームページ >ウェブフロントエンド >jsチュートリアル >js_javascript スキルにおけるプロトタイプの使用方法の詳細な紹介
プロトタイプは、特定のクラスのオブジェクトに対して IE 4 以降のバージョンで導入されたメソッドであり、特別なのは、クラスのオブジェクトにメソッドを追加するためのメソッドであることです。少しわかりにくく聞こえるかもしれませんが、心配しないでください。この特別な方法については、以下の例を通して説明します:
まず、クラスの概念を理解する必要があります。JavaScript 自体はオブジェクト指向言語であり、関連する要素はその属性に基づいて特定のクラスに関連付けられます。一般的なクラスには、配列変数 (Array)、論理変数 (Boolean)、日付変数 (Date)、構造変数 (Function)、数値変数 (Number)、オブジェクト変数 (Object)、文字列変数 (String) などが含まれます。また、配列のプッシュ メソッド、日付の get series メソッド、文字列の分割メソッドなど、関連するクラス メソッドもプログラマによってよく使用されます (ここでは、クラス アテンション メソッドと属性送信メソッドを区別する必要があります)。 .,
しかし、実際にプログラミングを行ってみると、既存の手法の欠点を感じませんか?プロトタイプ手法が誕生しました!以下では、プロトタイプの具体的な使用方法を、浅いものから深いものまで、例を通して説明します。
1. 最も単純な例、プロトタイプを理解します:
(1) Number.add(num): 関数、数値を加算します実装方法:Number.prototype.add = function(num){return(this num);}
テスト:alert((3).add(15)) -> 表示 18
(2) Boolean.rev(): 関数、ブール変数を否定します
テスト:alert((true).rev()) -> false を表示
2. 既存のメソッドの実装と拡張、最初のプロトタイプの紹介:
(1) Array.push(new_element) 機能:配列の末尾に新しい要素を追加
実装方法:
実装方法:
(2) String.length
機能: これは実際には String クラスの属性ですが、JavaScript では全角と半角を 1 つの文字として扱うため、実際のアプリケーションによっては問題が発生する可能性があります。今回はこの欠点を補うためにプロトタイプを使用します。
実装方法:
テスト:alert("EaseWe Spaces".cnLength()) -> 16 を表示
いくつかの正規表現方法と全角文字エンコーディングの原則は、この記事の他の 2 つの大きなカテゴリに属しているため、ここで使用されます。説明はありませんので、関連資料を参照してください。
3. 新しい機能を実装するには、プロトタイプを深く掘り下げます。実際のプログラミングで使用されるのは、既存のメソッドの強化だけではなく、より多くの機能要件も含まれることは間違いありません。以下に、実際的な問題を解決するためにプロトタイプを使用する 2 つの例を示します。例:
(1) String.left()
問題: VB を使用したことがある人なら誰でも、文字列の左側から n 文字を取得する left 関数を知っているはずですが、欠点は、全角と両方の文字列であることです。半角は 1 文字とみなされ、中国語と英語が混在したレイアウトでは等しい長さの文字列をインターセプトできません。
機能: 文字列の左側から n 文字をインターセプトし、全角と全角の区別をサポートします。半角文字
実装方法:
実験:
alter("EaseWe Spaces".left(8)) -> EaseWe スペースを表示
alter("EaseWe Spaces".left(8,true)) -> EaseWe 空を表示
このメソッドは前述の String.Tlength() メソッドを使用しており、いくつかの優れた新しいメソッドをカスタム メソッド間で組み合わせることができます。
(2) Date.DayDiff()
機能:2つの日付変数(年、月、日、週)の間隔を計算
実装方法:
実装方法:
コードをコピー
テスト:alert((4).fact()) -> 表示 24
このメソッドは主に、プロトタイプ メソッドでも再帰的メソッドが実行可能であることを示しています。
JavaScript で実装できるオブジェクト指向機能は次のとおりです:
・パブリック フィールド
・パブリック メソッド
・プライベート フィールド
・プライベート フィールド
・メソッド オーバーロード
・コンストラクター
・イベント
・単一継承
・サブクラスが親クラスの属性またはメソッドをオーバーライドする (オーバーライド)
・静的属性またはメソッド (静的メンバー)
例 1 (JavaScript で動作を追加できる型): 型にプロトタイプを使用して、型に動作を追加できます。これらの動作は、その型のインスタンスでのみ明示されます。 JS で許可される型は、Array、Boolean、Date、Enumerator、Error、Function、Number、Object、RegExp、String です