Buat objek
• Pengukuran objek langsung
var o = {foo: "bar"}• Fungsi konstruktor
var o = objek baru ();
• Prototipe warisan
var p = object.create (o);
Warisan kelas
Objek JavaScript memiliki properti dan properti yang diwarisi sendiri.
• Saat menanyakan atribut x objek O, pertama cari atribut x di o. Jika tidak ditemukan, cari atribut X dalam objek prototipe O hingga X atau objek yang prototipe yang nol ditemukan.
• Saat menetapkan nilai ke atribut x objek O, jika sudah ada properti x di O, ubah nilai x. Jika tidak ada properti x di O, buat atribut x untuk O dan tetapkan nilai.
• Yaitu, rantai prototipe hanya akan berfungsi saat meminta.
var o = {x: 1}; function p () {this.y = 2; } P.prototype = o; var t = p baru (); console.log (t); console.log ('x' dalam t); // true console.log (t.hasownproperty ('x')); // falseAnda dapat menggunakan di atau hasownproperty untuk menentukan apakah ada sifat dalam objek.
Properti Objek
• Transfer melalui sifat objek
Anda dapat menggunakan untuk..dalam untuk melintasi sifat -sifat suatu objek
Saat menggunakan untuk..di, iterasi di atas properti pada rantai prototipe. Urutan traversal adalah untuk dilintasi dengan prioritas luas
Oleh karena itu, menggunakan HasownProperty dapat menentukan apakah itu atribut objek sendiri.
• Properti Properti Objek
Gunakan objek.getOwnPropertyDescriptor () untuk mendapatkan deskriptor untuk properti khusus objek
Tulisan berarti apakah atribut objek dapat ditulis
Misalnya
var o = {foo: 'bar'} object.defineproperty (o, "foo", {writable: false}); o.foo = 'world'; console.log (o.foo); // bilah output masih outputTerkenak berarti apakah atribut objek terhitung
Misalnya
Yang dihitung dari panjang dan atribut lain dalam array adalah false, jadi
untuk (p in array) {console.log (p);}Tidak ada hasil
Dapat dikonfigurasi berarti apakah konfigurasi dan pencacahan properti dapat dimodifikasi.
Properti konfigurasi ini dapat didefinisikan menggunakan Object.DefineproPerties.
Object.defineproperty (o, "foo", {writable: false});
Dapatkan berarti metode untuk mendapatkan properti objek
Set mewakili metode untuk mengatur properti objek
Contoh
var book = {_year: 2004, edisi: 1}; object.defineProperty (buku, "tahun", {get: function () {console.log ('get tahun'); kembalikan this._year;}, set: function (newValue) {console.log ('set tahun ini); if (if newValue) {console.log (' set tahun); if (ife. += newValue - 2004;}}}); book.year = 2005; // output konsol 'set tahun'console.log (book.year); // output konsol nilai' get tahun 'dan tahunMetode objek
Tostring mengubah objek menjadi string. Konversi default akan menjadi sesuatu seperti [objek objek], jadi jika Anda perlu mengonversinya ke format JSON, Anda dapat menggunakan json.stringify
Nilai perlu digunakan saat mengonversi objek ke jenis lain. Demikian pula, tidak ada yang layak untuk dikatakan tentang konversi default.
Objek yang dapat dieksekusi
Anda dapat membuat objek yang dapat dieksekusi dengan metode berikut
bilah fungsi (o) {var f = function () {return "Hello world!"; } o .__ proto__ = f .__ proto__; f .__ proto__ = o; return f;} var o = {x: 5}; var foo = bar (o); console.log (foo ()); console.log (foo.x); console.log (typeof foo); // fungsiItu dapat digunakan sebagai objek (dengan rantai prototipe) atau sebagai fungsi untuk menyebutnya secara langsung