Bolehkah atribut jenis objek ini diletakkan hanya dalam pembina atau adakah dipersetujui bahawa atribut objek dalam prototaip tidak dibenarkan diubah suai untuk mengelakkan kesan contoh subkelas pada kelas induk dan subkelas lain? Adakah terdapat apa-apa lagi penyelesaian?
function extend(p, c) { var f = function () {}; f.prototype = p.prototype; c.prototype = new f(); c.prototype.constructor = c; } function parent() {} parent.prototype.aaa = 123; parent.prototype.sex = ['男', '女']; function child() {} extend(parent, child); c1 = new child(); c2 = new child(); console.log('设置实例c1之前,父类的sex值:',parent.prototype.sex); console.log('设置实例c1之前,实例c2的sex值:',c2.sex); c1.sex.push('其他'); console.log('设置实例c1之后,父类的sex值:',parent.prototype.sex); console.log('设置实例c1之后,实例c2的sex值:',c2.sex);
Kaedah ini membolehkan subkelas dan objek mengakses seks Jika seks tidak wujud, salinan jantina kelas ibu bapa akan dibuat untuknya.
Subkelas mentakrifkan atribut dengan nama yang sama, mengatasi kelas induk?
Atribut bukan kaedah tidak disyorkan untuk ditetapkan pada prototaip
Apabila memulakan subkelas
child
, tentukan atribut peribadi: