1. 程式人生 > >對js物件setter、getter的理解

對js物件setter、getter的理解

一、簡介

getter函式,獲取object物件的屬性值。

setter函式,對object物件的屬性進行賦值。

通常,有兩種手段可以對object物件存、取值;

1. 在物件初始化時

2. 在物件初始化後

二、定義屬性

2.1 在物件初始化時

在getter函式前用“get”關鍵字定義,在setter函式前用“setter”關鍵字定義;如下:

var o = {

  key: 0,

  get getKey() { return this.key; },

  set setKey( value ) { this.key = value; }

};

2.2 在物件初始化後

在物件初始化後需要兩個特殊的函式__defineGetter__和__defineSetter__來存取屬性值。使用方式如下:

var o = { key: 0 };

o.prototype.__defineSetter__( 'key', function( value ) { this.key = value; } );

o.prototype.__defineGetter__( 'key', function() { return this.key; } );