javascript - Sedikit keraguan tentang prototaip js dan _proto_
伊谢尔伦
伊谢尔伦 2017-05-19 10:26:34
0
9
777


Fungsi ini akan mencipta atribut prototaip untuk menunjuk ke objek prototaip, jadi prototaip ialah atribut khusus fungsi dan semua objek dalam chrome nampaknya mempunyai atribut _proro_, jadi apakah itu _proto_? Penunjuk kepada objek prototaip? Bagaimana pula dengan _proto_ dalam objek prototaip? Mohon penjelasan, terima kasih

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

membalas semua(9)
Peter_Zhu

_proto_ ialah atribut pada objek instance. Biar saya tunjukkan kepada anda perkara yang tertulis dalam buku:

    function Person(){
    
    }
    Person.prototype = {
        constructor:Person,
        name : "Nicholas",
        age  : 29,
        sayName(){
            alert(this.name);
        }
    }
    var son = new Person();

Terdapat penunjuk _proto_ pada contoh anak Penunjuk ini menunjuk ke objek prototaipnya, bukan pembina Oleh itu, terdapat proses carian rantaian prototaip. Semua kejadian boleh mencari atribut kaedah pada prototaip dan berkongsinya . Bahagian atas rantai prototaip ini ialah Objek Apabila mencari sifat dan kaedah f pada contoh, susunan carian adalah seperti berikut: contoh ==> pembina ==> objek prototaip ==> Objek.

Berkenaan sama ada penghujungnya ialah Objek, terdapat kes khas Kaedah Object.create() yang baru ditambahkan dalam ES5 boleh mengubahnya untuk sementara waktu instance boleh menggunakan toString( on Object. ), valueOf(), hasOwnProperty() dan kaedah lain.

Ini bukan penjelasan yang baik, saya harap ia membantu! Bahagian ini boleh difikirkan dengan membaca kandungan dalam buku, menggabungkan kod dalam buku dan berlatih Adalah disyorkan untuk merujuk kepada semua kandungan dalam Bab 6 "Ketinggian 3 Edisi".

给我你的怀抱

Sila rujuk Bab 6 "Pengaturcaraan Lanjutan dengan JavaScript"

刘奇

__proto__ ialah atribut objek, yang melaluinya anda boleh mengakses atribut objek prototaip. Prosesnya adalah seperti ini, apabila kita menggunakan operator baru untuk membuat instantiate objek, seperti

function People(name) {
    this.name = name;
    this.speak = function(){
        alert(this.name);
    };
}
People.prototype.run = function(){
    alert('速度挺快');
};
var person = new People('jack');
当调用person.speak()时,这个时候系统扫描了一下person 本身的属性和方法,发现自己有就调用了。
如果调用的是person.run(),显然这个对象是没有这个方法的,
这个方法是在原型对象的,所以在他要去到原型中找。
当前对象是怎么和原型对象联系起来的呢
就是通过__proto__
既然所有的对象都有__proto__属性
原型对象也是对象同样也有__proto__属性
,这样就形成了原型链,也就是继承。
一级一级的查找你调用的方法和属性,找到后立即返回。
这个点有点难理解,可以和你共同探讨。
给我你的怀抱

__proto__ ialah atribut objek,
prototaip ialah atribut fungsi,
fungsi juga objek, dan mereka juga mempunyai __proto__

曾经蜡笔没有小新

Saya rasa tiada jawapan untuk titik di atas, __proto__ ialah garis, destinasi baris ini ialah objek Prototaip (objek prototaip), __proto__ digunakan untuk menyambung objek dan prototaipnya

仅有的幸福

Pertama sekali, betulkan ralat dalam penerangan soalan: prototaip bukan atribut unik fungsi.
Jika anda benar-benar ingin memahami isu ini, sila kaji 原型链pengetahuan berkaitan js.
Seperti kata rakan di atas, sila rujuk Bab 6 "JavaScript Advanced Programming".

给我你的怀抱

Anda mungkin boleh memikirkannya dengan cara ini, ia lebih mudah untuk difahami, tetapi ia mungkin tidak cukup mendalam, tetapi ini adalah cara terbaik untuk memahaminya. Anda boleh memikirkan kaedah dan sifat fungsi yang anda lakukan 't mahu mendedahkan kepada anda sebagai data yang disimpan dalam objek Prototaip Fungsi ini adalah seperti perlumbaan Beberapa kaum sangat berkuasa dan mempunyai kuasa, seperti Saiyans Terdapat banyak perkara yang anda tidak boleh lihat hanya boleh memaksa mereka keluar melalui kaedah tertentu Okay, kemudian __proto__ boleh melakukannya dan anda akan faham.

巴扎黑

@ Linshui Zhaohua
Seperti yang ditunjukkan dalam gambar, adakah ini bermakna Objek dan Fungsi adalah kedua-dua objek peringkat teratas?

滿天的星座

Terima kasih atas jawapan anda Selepas melihat Elevation 3, fungsi akan mencipta atribut prototaip untuk menunjuk ke objek prototaip ]] dalam contoh. Dalam Firefox Chrome Safari, setiap Semua objek menyokong atribut _proto_, yang sepatutnya menjadi pelaksanaan penyemak imbas [[prototaip]].

Setiap pembina mempunyai objek prototaip Objek prototaip mengandungi penunjuk kepada pembina. Objek contoh mengandungi penunjuk dalaman kepada objek prototaip. Warisan terutamanya bergantung pada rantai prototaip untuk menjadikan objek prototaip sama dengan contoh jenis lain Objek prototaip akan mengandungi penunjuk kepada prototaip lain, dan prototaip lain mengandungi penunjuk kepada lapisan pembina Prototaip lalai semua functions is object. Instance akan menunjuk ke obj.prototype, dan akhirnya saya faham mengapa semua nilai boleh menggunakan Object.prototype.toString.call(value) untuk menentukan jenis.

Pembina <-------- Objek prototaip <

"Nampaknya masuk akal untuk membaca lebih banyak, membaca lebih banyak akhbar, kurang makan makanan ringan dan lebih banyak tidur"

"Adakah anda mempunyai teman wanita?"

"Teman Perempuan baharu"
"..."

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!