この記事では、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 プログラミング設計に役立つことを願っています。