JavaScript: 基本的な継承メカニズム

高洛峰
リリース: 2016-11-25 11:26:30
オリジナル
829 人が閲覧しました

前段階ではJavaプログラミングをやっていました。突然仕事をもらって ASP を勉強したので、JavaScript を使って ASP プログラムを構築することに昔から興味があり、得意でした。

JavaScript の明らかな利点は、独自のオブジェクトを定義して保持できることです。これは VBScript とは比較にならないようです。
これにより、JavaScriptを使ってよりオブジェクト指向に近いプログラミングが可能になります。これでウェブサイト開発がもっと楽しくなるかもしれません…

しかし、重大な欠点があります! JavaScript は継承メカニズムをサポートしていません。 Java とは異なり、extends キーワードはサポートされていません (ただし、このキーワードは JavaScript では予約語です)。

Microsoft の ASP.NET では、JavaScript は比較的完全なサポートを提供し始めたばかりです。もちろん、PHP 言語には継承メカニズムもサポートされているので、私は気に入っています...

しかし、今では学校のおじさんたちに、より良いドメイン名空間を購入するよう説得することはできませんが、私はそうしたくありません。 ASP に継承機構がないという苦境に耐え、必死の思いから知恵が生まれ、一定の成果が得られました。

JavaScript は継承メカニズムをまったくサポートしていません。絶対に。しかし、いくつかのトリックを実行してシミュレーションする方法を考え出すことはできます。
くだらない話をたくさんした後、まず例を見てみましょう:

function Person()
{
public: // この public に注意してください。実際には、そのような使用法はありません。幸いなことに、これは単なる私の習慣です。実際のアプリケーションでは起こりません 間違っています
this.GetName=Person_mfGetName;

private: // public と同様、これも私の習慣です
this.m_strName="Guest";
}

function Person_mfGetName()
{
return this.m_strName;
}

var Myperson=new Person();
Myperson.GetName();

任意の出力ステートメントを使用して結果を表示できます。もちろん、これは最初のステップにすぎません。
ここが重要なステップです: 継承!

function Student() // Extends Class: person
{
EXTENDS: // 私の習慣ですが、extends は JavaScript の予約語であるため、注意してください。
this.Super=person; // 定義は次のことを指します。その「親クラス コンストラクター」。Super は小文字にすることはできません
this.Super(); // このようにして、「親クラス」メソッドからすべてのプロパティと属性を「継承」できます。

private:
this.m_nStudentID=0;
}

GetName() メソッドは Student には表示されませんが、呼び出すことができます。なぜなら、彼は Person の GetName() メソッドを継承しているからです。

var MyStudent=new Student();
MyStudent.GetName(); // 「親クラス」の GetName メソッドが呼び出され、その結果が「Guest」を返すことに注意してください。


これが JavaScript の仕組みです。継承が実装されています。 2つのステップを覚えておいてください:

1: まず「サブクラス」の「親クラス」を指す関数を定義します(任意の名前を使用できます。私はSuperの使用に慣れています)
2: 次にこの関数を呼び出します

この方法「親クラスのすべてのプロパティとメソッド」を継承できます!


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート