Dalam JavaScript, tipe data terutama dibagi menjadi tipe primitif dan jenis referensi. Semua jenis referensi berasal dari salinan objek. Artikel ini adalah pengantar untuk beberapa fungsi tersembunyi dari objek objek yang dibawa kepada Anda oleh editor saluran teknologi baru kesalahan. Mari kita lihat!
Properti ini didefinisikan dalam prototipe kelas. Setelah instance objek dibuat, itu dapat dipanggil oleh instance objek melalui rantai __proto__ dan menunjuk ke konstruktor kelas saat ini. Ini dapat menentukan kelas mana objek yang langsung dimiliki (tidak seperti instanceof, instanceof tidak terbatas pada kelas yang dimiliki oleh objek secara langsung, bahkan kelas induk mengembalikan true).
[Contoh]
trace (object.prototype.constructor == objek); // output true
var a = objek baru ();
trace (a.constructor == objek); // output true
var b = array baru ();
trace (b.constructor == array); // output true
trace (b.constructor == objek); // output false
jejak (b instance dari objek); // output true
Properti: Objek .__ Konstruktor__
Fungsi properti ini mirip dengan Object.constructor, perbedaannya adalah tidak didefinisikan dalam prototipe kelas, tetapi dilampirkan ke instance objek ketika instance objek dibuat. Pada saat yang sama, properti ini juga disebut secara implisit ketika digunakan oleh kata kunci super sebagai konstruktor kelas induk, dan digunakan untuk menunjuk ke konstruktor kelas induk, yaitu, super (...) setara dengan konstruktor ini .__. Call (This, ...).
[Contoh]
trace (objek.prototype .__ constructor__ == objek); // output false
var a = objek baru ();
jejak (a .__ konstruktor__ == objek); // output true
var b = array baru ();
trace (b .__ konstruktor__ == array); // output true
jejak (b .__ konstruktor__ == objek); // output false
Metode: Object.isprototypeOf (ClassFunc)
Metode ini digunakan untuk menentukan apakah objek saat ini ada dalam rantai __proto__ objek OBJ. Metode ini dapat digunakan untuk menentukan apakah kelas adalah orang tua atau anak dari kelas lain.
[Contoh]
trace (object.prototype.isprototypeOf (objek baru ())); // output true
trace (object.prototype.isprototypeOf (array baru ())); // output true
trace (array.prototype.isprototypeOf (objek baru ())); // output false
trace (object.prototype.isprototypeOf (array.prototype)); // menilai apakah objek itu kelas induk array, output true
Metode: Object.ispropertyenumerable (PropName)
Metode ini digunakan untuk menentukan apakah anggota bernama propname ada dalam objek saat ini dan dapat disebutkan (menggunakan for..in), dengan kata lain, apakah itu terlihat (menggunakan fungsi global assetpropflags untuk mengatur apakah sifat objek terlihat).
[Contoh]
var a = {x: 1, y: 2};
Assetpropflags (a, ["y"], 1); // set y tidak terlihat
jejak (ay); // Hanya output 2
untuk (var i dalam a) jejak (i); // Hanya output x
trace (a.ispropertyenumerable ("x")); // output true
trace (a.ispropertyenumerable ("y")); // output false
Metode: Object.hasownproperty (PropName)
Metode ini digunakan untuk menentukan apakah anggota bernama PropName adalah anggota dari objek saat ini itu sendiri, daripada dirujuk dari prototipe kelas melalui rantai __proTo__.
[Contoh]
function test () {}
test.prototype.x = 1;
var a = tes baru ();
ay = 2;
jejak (kapak); // output 1
Trace (A.HasownProperty ("x")); // output false
jejak (ay); // output 2
Trace (A.Hasownproperty ("y")); // output true
Metode: Object.toString ()
Metode ini dapat menentukan hasil string yang dihasilkan oleh objek ketika dikonversi ke tipe string, yang umumnya didefinisikan dalam prototipe kelas.
[Contoh]
titik fungsi (x, y) {
this.x = x;
this.y = y;
}
point.prototype.toString = function () {
return "[x:" + this.x + ", y:" + this.y + "]";
};
var pos = titik baru (10, 20);
jejak ("posisi adalah" + pos); // Posisi output adalah [x: 10, y: 20]
Di atas adalah pengantar beberapa fungsi tersembunyi dari objek objek. Saya percaya setiap orang memiliki pemahaman yang jelas. Lebih banyak pengetahuan tentang saluran teknis ada di saluran teknologi baru yang salah!