Read Only Properties

Lesson read only properties akan membahas behaviour JavaScript dalam menangani read only properties pada object dan bagaimana strict mode akan membantu kita mencegah error logic.

//code-01
var obj ={};

Object.defineProperty(obj, 'readOnly',{
  enumerable: false,
  configurable: false,
  writeable: false,
  value: 'Read Only Variable'
});

console.log(obj.readOnly);

//code-02
var obj ={};

Object.defineProperty(obj, 'readOnly',{
  enumerable: false,
  configurable: false,
  writeable: false,
  value: 'Read Only Variable'
});

obj.readOnly = 'This action should be raise an error';
console.log(obj.readOnly);

Pada code-01, program berjalan sesuai dengan ekspetasi dan dilayar akan dicetak ‘Read Only Variable’.

Namun bagaimana jika program diubah, dimana kita berusaha mengubah isi object readOnly seperti pada code-02.

Tentu kita meharapkan JavaScript akan menampilkan error, karena object tersebut tidak bisa diubah (lihat property writeable: false).

Behaviour JavaScript akan mengabaikan kesalahan tersebut. JavaScript menganggap programmer tidak bermaksud mengubah isi object.

Dalam praktek programming, ada kemungkinan programmer tidak tahu atau lupa bahwa object yang digunakan tidak bisa diubah. Tentu akan lebih baik ada error message daripada kesalahan itu diabaikan oleh compiler silently.

Jika strict mode digunakan dengan menambahkan ‘use strict’ pada awal program, JavaScript akan menampilkan error TypeError: Cannot assign to read only property.

Kesimpulan

Menggunakan strict mode dapat membantu kita mencegah error yang diabaikan oleh JavaScript. Pada contoh ini, JavaScript mengabaikan error saat code berusaha mengubah sebuah readonly object.

Sharing is caring: