Cara membuat objek dalam JavaScript
高洛峰
高洛峰 2017-06-12 09:29:35
0
2
741

Kaedah untuk mencipta objek dalam Javascript termasuk literal objek, new+constructor, Object.create(), dsb. Adakah kaedah Object.create() cara terbaik untuk menjelmakan idea berasaskan prototaip Javascript? Bagaimanakah objek yang dicipta oleh new+constructor mencerminkan idea berasaskan prototaip? Antara dua kaedah, kaedah literal objek atau pembina + baharu, yang manakah muncul lebih awal?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

membalas semua(2)
Ty80

Maaf, saya tidak tahu banyak tentang soalan pertama, saya akan menambah lagi selepas saya menyelidiknya.

Soalan kedua:
Apabila kita mencipta pembina, terdapat atribut Prototaip di dalamnya Atribut ini ialah penunjuk yang menunjuk ke objek prototaip pembina
Ia diwujudkan melalui operator baharu + pembina Objek mempunyai __proto__ dalaman. atribut, yang juga menunjuk kepada objek prototaip

function Foo(name){
    this.name = name;
}

Foo.prototype.getName = function(){
    return this.name;
};

var obj = new Foo("suoz");
alert(obj.getName());

Saya rasa ia harus dicerminkan dalam mekanisme mencari pembolehubah melalui rantai prototaip

Apabila mencari pembolehubah, ia akan mencari dalam atribut contoh Jika ia tidak menemuinya, ia akan mencari dalam objek prototaip (objek yang ditunjuk oleh __proto__ objek), sehingga ke Object.prototype (kerana setiap fungsi. dalam JavaScript ialah Object), kembali jika ditemui, jika tidak mengembalikan undefined

Soalan ketiga:
Pembina baharu+ mesti muncul dahulu, kerana literal objek diperkenalkan oleh pembangun kemudian untuk memudahkan operasi. Lebih-lebih lagi, ia sebenarnya telah dilaksanakanvar obj = {};,其实系统内部真实的执行代码是这样的var obj = new Object();

女神的闺蜜爱上我

Soalan pertama:
Ada penjelasan tentang Object.create() di MDN, anda boleh lihat
https://developer.mozilla.org... (Jika anda mengalami kesukaran dalam bahasa Inggeris, anda boleh bertukar kepada bahasa Cina untuk semak imbas)
Soalan kedua:
baru ialah kata kunci JS Mekanisme asas bahasa ini boleh diteka, tetapi saya tidak berani menyatakan bagaimana ia mencerminkan prototaip? Soalan ini agak pelik. Saya rasa prototaip objek JS tidak dicerminkan oleh yang baru, tetapi ditentukan oleh mekanisme rantaian prototaip objek dalam bahasa ini di atas berkata mekanisme Carian) Soalan ketiga:
Apabila menggunakan literal untuk mencipta objek,
mula-mula buat objek kosong {}
Biarkan __proto__ objek kosong menghala ke Object.prototype
Ikat ini di atas kosong objek;
Ikat sifat dan kaedah dalam objek yang dibuat kepada ini; (Supaya kesilapan saya tidak menyesatkan orang lain).

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!