DEV Community

Cover image for String Prototype Capitalize
Dimas Andhika
Dimas Andhika

Posted on

String Prototype Capitalize

Note: This article is intended for Indonesians

Perkenalan

Javascript mempunyai banyak built in function pada prototype. Ada di array, string, object, dan lain2. Salah satu contohnya adalah String.prototype.toUpperCase() yang memungkinkan kita membuat string menjadi huruf besar.

String.prototype.toUpperCase()

const str = 'ini teks';
console.log(str.toUpperCase()) // => 'INI TEKS'
Enter fullscreen mode Exit fullscreen mode

Tapi pada suatu saat kita mungkin perlu mengubah string menjadi huruf kapital, tetapi javascript tidak punya builtin function seperti itu. Jadi solusinya adalah kita membuat function sendiri seperti pada contoh berikut:

Contoh Function Capitalize

function capitalize(str) {
  return `${str[0].toUpperCase()}${str.slice(1)}`
}
console.log(capitalize('ini teks')) // => 'Ini teks'
Enter fullscreen mode Exit fullscreen mode

Penjelasan

str[0].toUpperCase() kode ini dapat mengubah huruf pertama pada string menjadi kapital, dan kode str.slice(1) menampilkan string dari index ke 1

Permasalahan

Ini bekerja dengan baik tetapi tidak seperti yang kita harapkan. Contoh yang saya buat diatas merupakan function biasa, yang bisa menjadikan kode kita sulit dibaca jika sudah terdapat banyak function. Lalu gimana cara kita dapat membuat function seperti .toUpperCase()? Caranya seperti berikut:

String.prototype.capitalize()

String.prototype.capitalize = function() {
  return `${this[0].toUpperCase()}${this.slice(1)}`
}
console.log('ini teks'.capitalize()) // => 'Ini teks'
Enter fullscreen mode Exit fullscreen mode

Isi functionnya sama dengan yang kita buat pada contoh diatas ini, tetapi penulisan kode menjadi lebih rapih karena kita mendefinisikannya langsung ke prototype, ini seakan2 menjadikan capitalize seperti function bawaan javascript.

Penjelasan

Tetapi jika dilihat ada yang berubah, kita memakai keyword this pada kode diatas karena this pada kode diatas mereferensikan ke string yang kita beri method capitalize, contoh:

String.prototype.capitalize = function() {
  return this
}
console.log('ini teks'.capitalize()) // => 'ini teks'
Enter fullscreen mode Exit fullscreen mode

Jadi this pada kode diatas digunakan untuk menangkap stringnya, dan karena itu pula kita tidak dapat menggunakan arrow function karena keyword this akan berisi undefined

Top comments (0)