ホームページ > ウェブフロントエンド > jsチュートリアル > JS継承使用例 分析_JavaScriptスキル

JS継承使用例 分析_JavaScriptスキル

WBOY
リリース: 2016-05-16 16:15:33
オリジナル
958 人が閲覧しました

この記事では、JS 継承の使用法を例とともに分析します。皆さんの参考に共有してください。具体的な分析は次のとおりです。

継承: サブクラスは親クラスに影響を与えません。サブクラスは親クラスの一部の機能を継承できます (コードの再利用)。

属性の継承: 親クラス呼び出しのコンストラクターを呼び出します

メソッドの継承: for in: コピー継承 (jquery はコピー継承の拡張も使用します)

1. 継承をコピーします

function Person (name){
 this.name = name;
}
Person.prototype.showName =function (){
 alert(this.name);
}
function Worker(name,job){
 Person.call(this,name);
 this.job = job;
}
extend(Worker.prototype, Person.prototype);
//如果用Worker.prototype=Person.prototype的话,会造成引用相同的问题
function extend(obj1,obj2){
 for(var i in obj2){
   obj1[i] = obj2[i]
 }
}
var coder = new Worker('magicfly','frontEnd');
coder.showName();

ログイン後にコピー

2. クラスの継承

function Person (name){
 this.name = name;
}
Person.prototype.showName =function (){
 alert(this.name);
}
function Worker(name,job){
 Person.call(this,name);
 this.job = job;
}
//Worker.prototype = new Person();
// 这样继承会继承父级的不必要属性 
function F(){};
F.prototype = Person.prototype;
Worker.prototype = new F();
//通过建立一个临时构造函数来解决 ,也称为代理函数

var coder = new Worker('MAGICFLY','START');
coder.showName();
ログイン後にコピー

3. プロトタイプの継承

var a = {
  name : '小明'
};
var b = cloneObj(a);
b.name = '小强';
//alert( b.name );
alert( a.name );
function cloneObj(obj){
  var F = function(){};
  F.prototype = obj;
  return new F();
}
ログイン後にコピー

適用条件

コピー継承: ユニバーサルタイプ、新しい
の有無にかかわらず使用可能 クラスの継承: 新しいコンストラクター
プロトタイプの継承: new

のないオブジェクト

この記事が皆様の JavaScript プログラミング設計に役立つことを願っています。

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