mdn begini
Terjemahan mengatakan bahawa ia tidak menjejaskan atribut yang diwarisi daripada prototaip, tetapi nilai atribut __proto__ tidak boleh diubah suai Kemudian saya mengujinya sendiri dan mendapati bahawa prototaip boleh dipadam dan diubah suai selepas mengelak objek, dan kemudian saya. tidak memahami ungkapan ayat ini. . .
Kod adalah seperti berikut
let obj_origin, obj_changed;
function Person() {
this.name = 'sheng';
this.age = '25';
}
Person.prototype = {
constructor: Person,
sing () {
alert('sing');
},
prototypeTarget:'prototypeTarget'
};
obj_origin = new Person();
obj_changed = Object.seal(obj_origin);
delete obj_changed.name;
delete obj_changed.__proto__.prototypeTarget;
console.log(obj_changed);
Atribut prototaipTarget pada prototaip telah dipadamkan
Biasanya, objek boleh dipanjangkan (sifat baharu boleh ditambah). Mengelak objek menjadikannya mustahil untuk menambah sifat baharu dan semua sifat sedia ada menjadi tidak boleh dikonfigurasikan. Kesan sifat tidak boleh dikonfigurasikan ialah sifat itu menjadi tidak boleh dipadam dan sifat data tidak boleh ditakrifkan semula sebagai sifat penyambung, atau sebaliknya. Tetapi nilai hartanah masih boleh diubah suai. Percubaan untuk memadamkan sifat objek yang dimeterai atau menukar sifat objek yang dimeterai daripada sifat data kepada sifat pengakses akan gagal secara senyap atau membuang pengecualian TypeError (mod ketat).
Tidak menjejaskan sifat yang diwarisi daripada rantai prototaip. Tetapi nilai atribut proto tidak boleh diubah suai.
Maklumat datang daripada: https://developer.mozilla.org...
_proto_ ialah harta persendirian dalaman, bukan harta prototaip
Untuk butiran, sila baca https://developer.mozilla.org...