Rumah > hujung hadapan web > tutorial js > Menguasai Objek JavaScript: Perbandingan, Manipulasi dan Teknik Kawalan

Menguasai Objek JavaScript: Perbandingan, Manipulasi dan Teknik Kawalan

Linda Hamilton
Lepaskan: 2024-11-12 01:32:03
asal
525 orang telah melayarinya

Mastering JavaScript Objects: Comparison, Manipulation, and Control Techniques

Objek JavaScript sangat berkuasa dan serba boleh. Ia membolehkan kami menyimpan data yang kompleks dan dilengkapi dengan pelbagai kaedah terbina dalam untuk memudahkan manipulasi data. Mari lihat beberapa kaedah objek yang paling berguna dan cara ia membandingkan antara satu sama lain.


1. Perbandingan Objek

Membandingkan objek secara langsung dengan === tidak akan berfungsi kerana JavaScript membandingkan dengan rujukan, bukan mengikut nilai. Contohnya:

const obj1 = { a: 1 };
const obj2 = { a: 1 };
console.log(obj1 === obj2); // false
Salin selepas log masuk
Salin selepas log masuk

Untuk membandingkan kandungan, gunakan fungsi perbandingan mendalam atau perpustakaan seperti Lodash.


2. Deskriptor Objek

Penerangan sifat menyediakan metadata tentang sifat objek. Contohnya:

nilai: Nilai hartanah
boleh ditulis: Bolehkah nilai ditukar?
terhitung: Adakah ia boleh dilihat dalam gelung?
boleh dikonfigurasikan: Bolehkah ia diubah suai?

const obj = { name: "Alice" };
const descriptor = Object.getOwnPropertyDescriptor(obj, "name");
console.log(descriptor);
Salin selepas log masuk

3. Mengekstrak Kunci, Nilai dan Entri

Object.keys(): Mengembalikan tatasusunan kunci objek.
Object.values(): Mengembalikan tatasusunan nilai.
Object.entry(): Mengembalikan tatasusunan pasangan nilai kunci.

const person = { name: "Alice", age: 25 };
console.log(Object.keys(person));   // ["name", "age"]
console.log(Object.values(person)); // ["Alice", 25]
console.log(Object.entries(person)); // [["name", "Alice"], ["age", 25]]
Salin selepas log masuk

4. Penggabungan dan Pengklonan Objek

Object.assign() menyalin sifat dari satu objek ke objek yang lain. Ia hanya melakukan salinan cetek, jadi ia tidak akan mengklon objek bersarang secara mendalam.

const target = { a: 1 };
const source = { b: 2 };
Object.assign(target, source);
console.log(target); // { a: 1, b: 2 }
Salin selepas log masuk

5. Object.create()

Kaedah ini mencipta objek baharu menggunakan prototaip yang ditentukan. Berguna untuk warisan:

const personPrototype = {
  greet() { return `Hello, ${this.name}`; }
};
const person = Object.create(personPrototype);
person.name = "Alice";
console.log(person.greet()); // "Hello, Alice"
Salin selepas log masuk

6. Object.is()

Kaedah ini menyemak sama ada dua nilai adalah sama, malah membezakan antara 0 dan -0 atau membandingkan NaN dengan betul.

console.log(Object.is(+0, -0)); // false
console.log(Object.is(NaN, NaN)); // true
Salin selepas log masuk

7. Object.getOwnPropertyDescriptors()

Mendapatkan deskriptor semua sifat. Berguna untuk salinan dalam dengan deskriptor bukan lalai:

const obj = { name: "Alice" };
console.log(Object.getOwnPropertyDescriptors(obj));
Salin selepas log masuk

8. Object.getOwnPropertyNames()

Mengembalikan semua nama harta, termasuk nama yang tidak terhitung.

const obj = { a: 1 };
Object.defineProperty(obj, "b", { value: 2, enumerable: false });
console.log(Object.getOwnPropertyNames(obj)); // ["a", "b"]
Salin selepas log masuk

9. Object.seal()

Memeterai objek, membenarkan perubahan pada sifat sedia ada tetapi tiada penambahan atau pemadaman.

const obj = { name: "Alice" };
Object.seal(obj);
obj.age = 30; // Fails
console.log(obj); // { name: "Alice" }
Salin selepas log masuk

10. Object.freeze()

Membekukan objek, menghalang sebarang pengubahsuaian.

const obj = { name: "Alice" };
Object.freeze(obj);
obj.name = "Bob"; // Fails
console.log(obj); // { name: "Alice" }
Salin selepas log masuk

11. Object.assign()

Ini digunakan untuk menyalin sifat daripada berbilang objek sumber kepada objek sasaran.

const obj1 = { a: 1 };
const obj2 = { a: 1 };
console.log(obj1 === obj2); // false
Salin selepas log masuk
Salin selepas log masuk

Kesimpulan

JavaScript menyediakan senjata kaedah untuk bekerja dengan objek, setiap satu mempunyai tujuan tertentu. Dengan memahami cara dan masa untuk menggunakan kaedah ini, anda boleh mengawal gelagat objek, mengubah suai sifatnya atau menguncinya daripada perubahan.

Atas ialah kandungan terperinci Menguasai Objek JavaScript: Perbandingan, Manipulasi dan Teknik Kawalan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan