Rumah > Soal Jawab > teks badan
function Gadget(name,color){
this.name=name;
this.color=color;
this.whatAreYou=function(){
return 'I am a ' + this.color + ' ' + this.name;
};
}
Gadget.prototype={
price:100,
rating:3,
getInfo:function(){
return 'Rating: ' + this.rating + ', price: ' + this.price;
}
};
var newtoy=new Gadget('webcam','black');
new.rating;//3
newtoy.constructor === Gadget;//true
Contoh di atas diambil dari buku "Panduan Pengaturcaraan Berorientasikan Objek"
欧阳克2017-06-26 10:59:07
Jika kod ditulis dengan betul, maka ia adalah palsu, kerana anda telah menulis semula objek prototaip Alat, dan objek prototaip yang anda tulis semula tidak mempunyai atribut pembina Anda boleh merujuk kepada Bab 6 "Pengaturcaraan Lanjutan JavaScript". prototaip
typecho2017-06-26 10:59:07
Jawapan yang betul di tingkat atas, Gadget.prototype telah ditulis semula. Kerana terdapat pembina tersirat dalam objek prototaip, yang menunjuk kepada pembina itu sendiri. Seperti berikut:
Peluasan prototaip paling baik ditulis dalam bentuk ini:
Test.prototype.newFn = function() {
...
}
Atau gunakan Object.assign() untuk menggabungkan objek:
Test.prototype = Object.assign(Test.prototype, {
newAttr: '',
newFn: function() {
...
}
})