Objek objek dalam JavaScript adalah kelas dasar dari semua objek dalam JS, yaitu, semua objek dalam JS berasal dari objek objek. Objek objek terutama digunakan untuk merangkum data sewenang -wenang ke dalam bentuk objek.
1. Pengantar Kelas Objek
Kelas objek adalah kelas dasar (kelas induk) dari semua kelas JavaScript, memberikan cara mudah untuk membuat objek khusus tanpa mengharuskan programmer untuk mendefinisikan konstruktor.
2. Properti utama kelas objek
1. Konstruktor: Konstruktor Objek.
2.Prototype: Dapatkan objek prototipe kelas, properti statis.
3. Metode utama kelas objek
1.hasownproperty (PropertiDyName)
Menentukan apakah objek memiliki atribut tertentu. Properti ini harus ditentukan dengan string, misalnya, obj.hasownproperty ("name"), mengembalikan nilai boolean. Metode ini tidak dapat memeriksa apakah rantai prototipe objek memiliki properti ini; Itu harus menjadi anggota objek itu sendiri.
var str = ""; alert ("str.hasownproperty (/" split/") adalah:"+str.hasownproperty ("split"))); // return falseAlert ("string.prototype.hasownproperty (/" split/") adalah:"+string.prototype.hasownproperty ("split"))); // Kembalikan trueHasil Menjalankan:
Penggunaan HasownProperty tidak hanya di sini. Di jQuery, langkah yang sangat diperlukan dalam menulis plug-in adalah untuk menginisialisasi parameter. Salah satu metode yang sangat penting adalah $ .Extend (); Prinsipnya adalah untuk menerapkan metode HasownProperty (); Gunakan untuk di loop untuk melintasi anggota objek, jika ada anggota objek dengan nama yang sama, jika ada, ganti yang lama dengan anggota objek baru. Dengan cara ini, kita dapat memodifikasi perubahan parameter dalam metode untuk mengontrol proses program. Untuk bagian -bagian yang belum berubah, kita masih dapat menggunakan nilai default untuk mengendalikannya. Kami juga dapat dengan mudah mensimulasikan fungsi perpanjangan ini, sebagai berikut
fungsi memanjang (target, sumber) {// target sumber lama baru untuk (var i in source) {if (target.hasownproperty (i)) {target [i] = sumber [i];}} target pengembalian;} var a = {"pertama": "kedua": "lyl", "ketiga": "bob" {"var"; a) {alert (a [i]); // Awalnya itu Bob, tapi sekarang telah menjadi Leo}2.Sprototipe (objek)
Tentukan apakah objek tersebut merupakan prototipe objek lain.
obj1.isprototypeof (OBJ2);
OBJ1 adalah contoh suatu objek; OBJ2 adalah objek lain yang akan memeriksa rantai prototipe. Rantai prototipe dapat digunakan untuk berbagi fungsionalitas di antara berbagai contoh jenis objek yang sama. Jika rantai prototipe OBJ2 berisi OBJ1, maka metode isprototype dari mengembalikan true. Jika OBJ2 bukan objek atau OBJ1 tidak muncul dalam rantai prototipe di OBJ2, metode isPrototipe akan mengembalikan false.
<script type = "text/javaScript"> function foo () {this.name = 'foo';} function bar () {} bar.prototype = foo baru (); var goo = bar baru (); waring (goo.name); //fooalert(bar.prototype.isPrototypeof(goo);//true, jika ada objek saat ini goo di rantai prototipe batang, maka metode isPrototypeOf mengembalikan true </script>3.PropertyiseNumerable (PropertiDyName)
Melalui metode ini, kita dapat mendeteksi apakah anggota objek ini dapat dilalui. Jika dapat dilalui, itu membuktikan bahwa objek ini dapat dilalui menggunakan For In In Loop.
Formatnya adalah sebagai berikut: obj.propertyisenumerable (propertieName)
Jika PropertiyName ada di OBJ dan dapat disebutkan secara mendalam menggunakan A untuk ... di loop, maka properti properti yang dapat dikembalikan true. Jika objek tidak memiliki properti yang ditentukan atau properti yang ditentukan tidak dapat dihitung, properti properti yang dapat dikembalikan False. Biasanya, properti yang telah ditentukan tidak dapat dihitung, sedangkan properti yang ditentukan pengguna selalu dihitung.
4.toString (): Kembalikan string yang sesuai dengan objek
5.ValueOf (): Mengembalikan tipe asli yang sesuai dengan objek
5 metode di atas didefinisikan pada objek.prototype. Semua objek dalam ecmascript diwarisi dari objek, sehingga semua objek pada ecmascript memiliki beberapa metode.
Kode Uji 1:
var p = objek baru (); // Buat objek secara langsung melalui objek // atribut dinamis p.age =; p.name = "克到到到到" untuk objek p; // Perpanjang kelas objek dan tambahkan metode tampilkan objek.prototype.show = function () {waspada (this.age+"/t"+this.name);} waspada (p.age); p.show (); docum Ent.write ("<pr Pre>"); document.writeln ("p.constructor:"+p.constructor); // Dapatkan dokumen konstruktor objek.writeln ("Object.prototype:"+Object.prototype); // Dapatkan Objek Prototype, Prototype adalah properti statis, dan hanya dapat dilewati "Kelasnya. Document.writeln ("p.isprototypeof (p):"+p.isprototypeof (p)); document.writeln ("p.hasownproperty (/" usia/"):"+p.hasownproperty ("usia")); Document.writeln ("p.property isenumerable (/" Age "); "+p.propertyisenumerable (" usia ")); document.writeln (" p.toString (): "+p.tostring ()); document.writeln (" p.valueof (): "+p.valueof ()); dokumen.write (" </pre> "); Document.write (" </pra -pre>;Hasil Menjalankan:
Kode Uji 2:
var Car = function(){};Car.prototype.hello = function(){alert("hello car");};var car = new Car();car.f = function() {alert("custom method");}document.write("<pre>");document.writeln("car.hasOwnProperty(/"f/") is: "+car.hasownproperty (" f ")); // ture, objek mobil memiliki f Metode dokumen. document.writeln ("car.hasownproperty (/" hello/")"+car.hasownproperty ("hello")); // false, karena mobil itu sendiri tidak memiliki dokumen hello method.writeln ("car.propertyisenumerable (/" hello/") hasilnya adalah:"+car.propertyisenumerable ("hello")); // Salah, tanpa metode ini, tentu saja, hasil dari document.writeln ("car.constructor.prototype.hasownproperty (/" hello/") hasilnya adalah:"+car.constructor.prototype.hasownproperty ("hello"))); // true, the prototype of car class Car has the hello method document.writeln("car.constructor.prototype.propertyIsEnumerable(/"hello/") and the result is: "+car.constructor.prototype.propertyIsEnumerable("hello"));// true, the prototype of car class Car's hello method is the enumerable document.writeln ("car.prototype.hasownproperty (/" hello/") dan hasilnya adalah:"+car.prototype.hasownproperty ("hello")); // true, prototipe mobil kelas mobil memiliki dokumen hello.writeln ("car.prototype.propertyumeneMering memiliki dokumen hello." "+Car.prototype.propertyisenumerable (" hello ")); document.write (" </pr Pre> ");Hasil Menjalankan:
Di atas adalah penjelasan terperinci dari kelas objek di JS yang diperkenalkan oleh editor kepada Anda, termasuk ringkasan titik pengetahuan JavaScript (sebelas). Saya harap ini akan membantu Anda.