ホームページ > ウェブフロントエンド > jsチュートリアル > js シミュレーション クラスの継承 小さな example_javascript スキル

js シミュレーション クラスの継承 小さな example_javascript スキル

WBOY
リリース: 2016-05-16 18:22:54
オリジナル
970 人が閲覧しました
コードをコピーします コードは次のとおりです:

//プロトタイプの継承を使用し、一時オブジェクトをMiddle は Child のプロトタイプ属性であり、一時オブジェクトのプロトタイプ属性は親クラスのプロトタイプを指します。
//すべてのサブクラスと親クラスのプロトタイプ属性が同じオブジェクトを指すことを防ぎます。
//こうすることで、サブクラスのプロトタイプ属性が変更されても、他のサブクラスや親クラスには影響しません。
function extend(Child, Parent) {
var F = function(){};プロトタイプ = Parent.prototype;
Child.prototype = new F ();
Child.base = Parent.prototype; function Parent(name)
{
this.aa = 123;
this.getName = function() {return name;}; //クロージャを使用してプライベート メンバーをシミュレートします。 (値){名前=値;};
}
Parent.prototype.print = function(){alert("print!");};
Parent.prototype.hello = function()
{
alert(this.getName() "Parent ")
};

function Child(name,age)
{
Parent.apply(this, argument) ;//親クラスのコンストラクターを呼び出して、親クラスで定義されたプロパティを継承します。
this.age = age;
extend(Child,Parent) //親クラスを継承します。

Child.prototype.hello = function() //親クラスの hello メソッドをオーバーライドします。
{
alert(this.getName() "Child");

Parent.prototype.hello. apply(this,arguments); //同じ名前の親クラスのメソッドを呼び出します
};
//サブクラスのメソッド
Child.prototype.doSomething = function(){alert(this.age " doSomething"); };

var p1 = new Child("xhan", 22);

var p2 = new Child("xxx",33);

p1.hello();

p1 .doSomething(); // 親クラスのメソッド

alert(p1 子のインスタンス); //true
alert(p1 親のインスタンス); //true

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