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
Number
adalah jenis objek yang membungkusnumber
primitif. Dengan secara eksplisit mencipta objekNumber
, anda boleh mengendali nombor sepertinumber
, tetapi biasanya disarankan untuk menggunakan jenisnumber
primitif.
typeof numObject
ialah"object"
, tetapitypeof 42
ialah"number"
.
- Perlu diketahui bahawa menggunakan operator
new
untuk menjana objek pembungkus baru memberikan hasil yang berbeza daripada memanggilNumber
sebagai fungsi. Apabila dipanggil sebagai fungsi, jenis primitifnumber
akan 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
string
primitif. Dengan menggunakan objekString
, anda boleh mengakses sifat dan kaedah string, tetapi biasanyastring
primitif digunakan.
typeof strObject
ialah"object"
, tetapitypeof "Hello"
ialah"string"
.
- Seperti
Number
, memanggilString
sebagai fungsi mengembalikanstring
primitif.
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
boolean
primitif. Anda juga boleh secara eksplisit mencipta objekBoolean
, tetapi biasanya jenisboolean
primitif digunakan.
typeof boolObject
ialah"object"
, tetapitypeof true
ialah"boolean"
.
- Serupa dengan
Number
, memanggilBoolean
sebagai fungsi mengembalikanboolean
primitif.
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
Object
untuk mencipta objek pembungkus bagiSymbol
, tetapi secara amnya, anda menggunakan jenis primitifSymbol
secara 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
, dansymbol
yang tidak mempunyai kaedah langsung. - Objek Pembungkus: Objek seperti
Number
,String
, danBoolean
yang 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.