Rumah >hujung hadapan web >tutorial js >Kemahiran analisis_javascript contoh penggunaan warisan JS

Kemahiran analisis_javascript contoh penggunaan warisan JS

WBOY
WBOYasal
2016-05-16 16:15:33940semak imbas

Artikel ini menganalisis penggunaan warisan JS dengan contoh. Kongsikan dengan semua orang untuk rujukan anda. Analisis khusus adalah seperti berikut:

Warisan: Subkelas tidak menjejaskan kelas induk Subkelas boleh mewarisi beberapa fungsi kelas induk (penggunaan semula kod)

Warisan atribut: panggil pembina panggilan kelas induk

Pewarisan kaedah: untuk dalam: pewarisan salinan (jquery juga menggunakan pewarisan salinan lanjutkan)

1. Salin harta pusaka

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. Warisan kelas

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. Warisan prototaip

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();
}

Syarat yang berkenaan

Salin warisan: Jenis universal, boleh digunakan dengan atau tanpa baharu
Warisan kelas: pembina baharu
Warisan prototaip: Objek tanpa baharu

Saya harap artikel ini akan membantu reka bentuk pengaturcaraan JavaScript semua orang.

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn