Rumah  >  Soal Jawab  >  teks badan

Cara membuat objek dalam JavaScript

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?

高洛峰高洛峰2686 hari yang lalu760

membalas semua(2)saya akan balas

  • PHP中文网

    PHP中文网2017-06-12 09:31:35

    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();

    balas
    0
  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-06-12 09:31:35

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

    balas
    0
  • Batalbalas