Objek Pembalut dalam JavaScript
Artikel ini menjelaskan tentang objek pembalut dalam JavaScript.
YouTube Video
Objek Pembungkus
JavaScript mempunyai jenis primitif dan objek untuk mengendalikannya (objek pembungkus).
Jenis Asas
Jenis primitif mewakili satu nilai dan adalah ringkas serta ringan. Ini adalah tidak boleh diubah (tidak boleh diubah) dan tidak secara langsung mempunyai kaedah objek atau sifat, tetapi ia boleh ditukar sementara kepada objek pembalut untuk operasi.
string dan number adalah contoh jenis primitif. Sebaliknya, objek pembungkus dimulai dengan huruf besar, seperti String dan Number.
Objek Pembalut
Untuk memanipulasi jenis primitif, JavaScript sementara menjana objek pembungkus (Object wrappers). Objek pembungkus mengandungi kaedah dan sifat untuk jenis primitif.
Number
1let numObject = new Number(42); // Wrapper object
2
3console.log(typeof numObject); // object
4console.log(numObject.valueOf()); // 42
5
6let numValue = Number(42); // Return primitive value
7
8console.log(typeof numValue); // number
9console.log(numValue); // 42
Numberadalah jenis objek yang membungkusnumberprimitif. Dengan secara eksplisit mencipta objekNumber, anda boleh mengendali nombor sepertinumber, tetapi biasanya disarankan untuk menggunakan jenisnumberprimitif.
typeof numObjectialah"object", tetapitypeof 42ialah"number".
- Perlu diketahui bahawa menggunakan operator
newuntuk menjana objek pembungkus baru memberikan hasil yang berbeza daripada memanggilNumbersebagai fungsi. Apabila dipanggil sebagai fungsi, jenis primitifnumberakan dikembalikan.
String
1let strObject = new String("Hello"); // Wrapper object
2
3console.log(typeof strObject); // object
4console.log(strObject.valueOf()); // Hello
- Ia adalah jenis objek yang membungkus
stringprimitif. Dengan menggunakan objekString, anda boleh mengakses sifat dan kaedah string, tetapi biasanyastringprimitif digunakan.
typeof strObjectialah"object", tetapitypeof "Hello"ialah"string".
- Seperti
Number, memanggilStringsebagai fungsi mengembalikanstringprimitif.
Boolean
1let boolObject = new Boolean(true); // Wrapper object
2
3console.log(typeof boolObject); // object
4console.log(boolObject.valueOf()); // true
- Ia adalah jenis objek yang membungkus
booleanprimitif. Anda juga boleh secara eksplisit mencipta objekBoolean, tetapi biasanya jenisbooleanprimitif digunakan.
typeof boolObjectialah"object", tetapitypeof trueialah"boolean".
- Serupa dengan
Number, memanggilBooleansebagai fungsi mengembalikanbooleanprimitif.
BigInt
1let bigIntObject = Object(9007199254740991n); // Wrapper object
2
3console.log(typeof bigIntObject); // object
4console.log(bigIntObject.valueOf()); // 9007199254740991n
5
6let bigIntValue = BigInt(9007199254740991); // Return primitive BigInt
7
8console.log(typeof bigIntValue); // bigint
9console.log(bigIntValue); // 9007199254740991n
10
11// Error
12let bigIntObject2 = new BigInt(9007199254740991n);Objectを使ってBigIntのラッパーオブジェクトを生成できますが、通常はプリミティブ型のbigintを直接使うのが一般的です。
typeof bigIntObjectは"object"であるのに対し、typeof 9007199254740991nは"bigint"です。
BigIntを関数として呼び出すとプリミティブなbigintを返しますが、new演算子をつけてBigIntのラッパーオブジェクトを生成することはできません。
Symbol
1let symObject = Object(Symbol("id")); // Wrapper object for Symbol
2
3console.log(typeof symObject); // object
4console.log(symObject.valueOf()); //
- Anda boleh menggunakan
Objectuntuk mencipta objek pembungkus bagiSymbol, tetapi secara amnya, anda menggunakan jenis primitifSymbolsecara langsung.
Perbezaan antara Jenis Primitif dan Objek Pembungkus
- Jenis primitif adalah ringan dan cekap memori, tetapi tidak mempunyai sifat atau kaedah langsung. Namun, dalam JavaScript, walaupun dengan jenis primitif, objek pembungkus sementara secara automatik dicipta apabila diperlukan untuk menyediakan kaedah dan sifat.
1let text = "Hello";
2
3// A temporary String object is created,
4// allowing access to the length property
5console.log(text.length);- Objek pembungkus adalah objek yang dijana secara eksplisit yang boleh memberi kesan kepada memori dan prestasi, jadi penggunaan jenis primitif secara amnya disarankan.
Kesimpulan
- Jenis Utama: Jenis ringan seperti
number,string,boolean,null,undefined, dansymbolyang tidak mempunyai kaedah langsung. - Objek Pembungkus: Objek seperti
Number,String, danBooleanyang sementara ditukar daripada jenis utama.
Anda boleh mengikuti artikel di atas menggunakan Visual Studio Code di saluran YouTube kami. Sila lihat juga saluran YouTube kami.