javascript - Beberapa soalan tentang pelaksanaan fungsi extend dalam corak reka bentuk js
typecho
typecho 2017-06-15 09:23:00
0
1
833

Dalam Bab 4.2.2 corak reka bentuk JavaScript, fungsi lanjutan ditulis seperti berikut

function extend(subClass,superClass){ var F = function(){}; F.prototype = superClass.prototype; subClass.prototype = new F(); subClass.prototype.constructor = subClass; }

Soalan saya ialah tentang fungsi F ini. Jika perhubungan pewarisan dilaksanakan dengan cara ini, maka rantai prototaip objek terakhir yang diwujudkan oleh subKelas hendaklah seperti yang ditunjukkan di bawah:

Tetapi sebenarnya, output konsol chrom adalah seperti yang ditunjukkan di bawah

Fungsi F tidak ditunjukkan dalam penyahpepijatan chrom.

Soalan saya ialah mengapa F tiada dalam rantaian prototaip?

typecho
typecho

Following the voice in heart.

membalas semua (1)
習慣沉默
Test.__proto__ === subClass.prototype Test.__proto__.__proto__ === subClass.prototype.__proto__ === superClass.prototype

Ini adalah rantai prototaip Fungsi kosong F hanyalah pembina sementara, pada dasarnya hanya untuk merealisasikansubClass.prototype.__proto__ === superClass.prototype,本来这样的实现方式subClass.prototype = new superClass()就可以实现,但是使用空函数可以避免一些问题,比如说superClassbanyak atribut

.
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!