Selepas mengelak objek dengan Object.seal() dalam es5, bolehkah sifat pada prototaip objek diubah suai?
漂亮男人
漂亮男人 2017-06-10 09:49:20
0
2
914
Penjelasan

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

漂亮男人
漂亮男人

membalas semua(2)
刘奇

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

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan