Object 內置對象

對象LruCache

LRU(least recently used) 緩存對象

LruCache 用以維護一個LRU 緩存,創建方法:

1 2
var util = require("util"); var c = new util.LruCache(10, 100);

繼承關係

#lineWidth: 1.5 #font: Helvetica,sans-Serif #fontSize: 10 #leading: 1.6 #.this: fill=lightgray #.class: fill=white [<class>object|toString();toJSON()] [<class>EventEmitter|new EventEmitter()|EventEmitter|defaultMaxListeners|on();addListener();prependListener();once();prependOnceListener();off();removeListener();removeAllListeners();setMaxListeners();getMaxListeners();listeners();listenerCount();eventNames();emit()] [<this>LruCache|new LruCache()|size;timeout;onexpire|clear();has();get();set();remove();isEmpty()] [object] <:- [EventEmitter] [EventEmitter] <:- [LruCache] EventEmitter new EventEmitter() EventEmitter defaultMaxListeners on() addListener() prependListener() once() prependOnceListener() off() removeListener() removeAllListeners() setMaxListeners() getMaxListeners() listeners() listenerCount() eventNames() emit() LruCache new LruCache() size timeout onexpire clear() has() get() set() remove() isEmpty() object toString() toJSON()

構造函數

LruCache

LruCache 對象構造函數

1 2
new LruCache(Integer size, Integer timeout = 0);

調用參數:

  • size: Integer, 緩存最大尺寸
  • timeout: Integer, 元素失效時間,單位是ms,小於等於0 不失效,缺省為 0

靜態屬性

defaultMaxListeners

Integer, 默認全局最大監聽器數

1
static Integer LruCache.defaultMaxListeners;

成員屬性

size

Integer, 查詢容器內數值個數

1
readonly Integer LruCache.size;

timeout

Integer, 查詢和設置容器內元素失效時間,單位是ms,小於等於0 不失效

1
Integer LruCache.timeout;

onexpire

Function, 查詢和綁定數據超時事件,相當於on("expire", func);

1
Function LruCache.onexpire;

成員函數

clear

清除容器數據

1
LruCache.clear();

has

檢查容器內是否存在指定鍵值的數據

1
Boolean LruCache.has(String name);

調用參數:

  • name: String, 指定要檢查的鍵值

返回結果:

  • Boolean, 返回鍵值是否存在

get

查詢指定鍵值的值

1
Value LruCache.get(String name);

調用參數:

  • name: String, 指定要查詢的鍵值

返回結果:

  • Value, 返回鍵值所對應的值,若不存在,則返回undefined

查詢指定鍵值的值,若不存在或過期,則調用回調函數更新數據

1 2
Value LruCache.get(String name, Function updater);

調用參數:

  • name: String, 指定要查詢的鍵值
  • updater: Function, 指定更新函數

返回結果:

  • Value, 返回鍵值所對應的值

set

設定一個鍵值數據,鍵值不存在則插入一條新數據

1 2
LruCache.set(String name, Value value);

調用參數:

  • name: String, 指定要設定的鍵值
  • value: Value, 指定要設定的數據

設定一個鍵值數據,鍵值不存在則插入新數據

1
LruCache.set(Object map);

調用參數:

  • map: Object, 指定要設定的鍵值數據字典

remove

刪除指定鍵值的全部值

1
LruCache.remove(String name);

調用參數:

  • name: String, 指定要刪除的鍵值

isEmpty

檢查容器是否為空

1
Boolean LruCache.isEmpty();

返回結果:

  • Boolean, 容器內無數值則返回true

on

綁定一個事件處理函數到對象

1 2
Object LruCache.on(String ev, Function func);

調用參數:

  • ev: String, 指定事件的名稱
  • func: Function, 指定事件處理函數

返回結果:

  • Object, 返回事件對象本身,便於鍊式調用

綁定一個事件處理函數到對象

1
Object LruCache.on(Object map);

調用參數:

  • map: Object, 指定事件映射關係,對象屬性名稱將作為事件名稱,屬性的值將作為事件處理函數

返回結果:

  • Object, 返回事件對象本身,便於鍊式調用

addListener

綁定一個事件處理函數到對象

1 2
Object LruCache.addListener(String ev, Function func);

調用參數:

  • ev: String, 指定事件的名稱
  • func: Function, 指定事件處理函數

返回結果:

  • Object, 返回事件對象本身,便於鍊式調用

綁定一個事件處理函數到對象

1
Object LruCache.addListener(Object map);

調用參數:

  • map: Object, 指定事件映射關係,對象屬性名稱將作為事件名稱,屬性的值將作為事件處理函數

返回結果:

  • Object, 返回事件對象本身,便於鍊式調用

prependListener

綁定一個事件處理函數到對象起始

1 2
Object LruCache.prependListener(String ev, Function func);

調用參數:

  • ev: String, 指定事件的名稱
  • func: Function, 指定事件處理函數

返回結果:

  • Object, 返回事件對象本身,便於鍊式調用

綁定一個事件處理函數到對象起始

1
Object LruCache.prependListener(Object map);

調用參數:

  • map: Object, 指定事件映射關係,對象屬性名稱將作為事件名稱,屬性的值將作為事件處理函數

返回結果:

  • Object, 返回事件對象本身,便於鍊式調用

once

綁定一個一次性事件處理函數到對象,一次性處理函數只會觸發一次

1 2
Object LruCache.once(String ev, Function func);

調用參數:

  • ev: String, 指定事件的名稱
  • func: Function, 指定事件處理函數

返回結果:

  • Object, 返回事件對象本身,便於鍊式調用

綁定一個一次性事件處理函數到對象,一次性處理函數只會觸發一次

1
Object LruCache.once(Object map);

調用參數:

  • map: Object, 指定事件映射關係,對象屬性名稱將作為事件名稱,屬性的值將作為事件處理函數

返回結果:

  • Object, 返回事件對象本身,便於鍊式調用

prependOnceListener

綁定一個事件處理函數到對象起始

1 2
Object LruCache.prependOnceListener(String ev, Function func);

調用參數:

  • ev: String, 指定事件的名稱
  • func: Function, 指定事件處理函數

返回結果:

  • Object, 返回事件對象本身,便於鍊式調用

綁定一個事件處理函數到對象起始

1
Object LruCache.prependOnceListener(Object map);

調用參數:

  • map: Object, 指定事件映射關係,對象屬性名稱將作為事件名稱,屬性的值將作為事件處理函數

返回結果:

  • Object, 返回事件對象本身,便於鍊式調用

off

從對象處理隊列中取消指定函數

1 2
Object LruCache.off(String ev, Function func);

調用參數:

  • ev: String, 指定事件的名稱
  • func: Function, 指定事件處理函數

返回結果:

  • Object, 返回事件對象本身,便於鍊式調用

取消對象處理隊列中的全部函數

1
Object LruCache.off(String ev);

調用參數:

  • ev: String, 指定事件的名稱

返回結果:

  • Object, 返回事件對象本身,便於鍊式調用

從對象處理隊列中取消指定函數

1
Object LruCache.off(Object map);

調用參數:

  • map: Object, 指定事件映射關係,對象屬性名稱作為事件名稱,屬性的值作為事件處理函數

返回結果:

  • Object, 返回事件對象本身,便於鍊式調用

removeListener

從對象處理隊列中取消指定函數

1 2
Object LruCache.removeListener(String ev, Function func);

調用參數:

  • ev: String, 指定事件的名稱
  • func: Function, 指定事件處理函數

返回結果:

  • Object, 返回事件對象本身,便於鍊式調用

取消對象處理隊列中的全部函數

1
Object LruCache.removeListener(String ev);

調用參數:

  • ev: String, 指定事件的名稱

返回結果:

  • Object, 返回事件對象本身,便於鍊式調用

從對象處理隊列中取消指定函數

1
Object LruCache.removeListener(Object map);

調用參數:

  • map: Object, 指定事件映射關係,對象屬性名稱作為事件名稱,屬性的值作為事件處理函數

返回結果:

  • Object, 返回事件對象本身,便於鍊式調用

removeAllListeners

從對象處理隊列中取消所有事件的所有監聽器, 如果指定事件,則移除指定事件的所有監聽器。

1
Object LruCache.removeAllListeners(String ev);

調用參數:

  • ev: String, 指定事件的名稱

返回結果:

  • Object, 返回事件對象本身,便於鍊式調用

從對象處理隊列中取消所有事件的所有監聽器, 如果指定事件,則移除指定事件的所有監聽器。

1
Object LruCache.removeAllListeners(Array evs = []);

調用參數:

  • evs: Array, 指定事件的名稱

返回結果:

  • Object, 返回事件對象本身,便於鍊式調用

setMaxListeners

監聽器的默認限制的數量,僅用於兼容

1
LruCache.setMaxListeners(Integer n);

調用參數:

  • n: Integer, 指定事件的數量

getMaxListeners

獲取監聽器的默認限制的數量,僅用於兼容

1
Integer LruCache.getMaxListeners();

返回結果:

  • Integer, 返回默認限制數量

listeners

查詢對象指定事件的監聽器數組

1
Array LruCache.listeners(String ev);

調用參數:

  • ev: String, 指定事件的名稱

返回結果:

  • Array, 返回指定事件的監聽器數組

listenerCount

查詢對象指定事件的監聽器數量

1
Integer LruCache.listenerCount(String ev);

調用參數:

  • ev: String, 指定事件的名稱

返回結果:

  • Integer, 返回指定事件的監聽器數量

查詢對象指定事件的監聽器數量

1 2
Integer LruCache.listenerCount(Value o, String ev);

調用參數:

  • o: Value, 指定查詢的對象
  • ev: String, 指定事件的名稱

返回結果:

  • Integer, 返回指定事件的監聽器數量

eventNames

查詢監聽器事件名稱

1
Array LruCache.eventNames();

返回結果:

  • Array, 返回事件名稱數組

emit

主動觸發一個事件

1 2
Boolean LruCache.emit(String ev, ...args);

調用參數:

  • ev: String, 事件名稱
  • args: ..., 事件參數,將會傳遞給事件處理函數

返回結果:

  • Boolean, 返回事件觸發狀態,有響應事件返回true,否則返回false

toString

返回對象的字符串表示,一般返回"[Native Object]",對象可以根據自己的特性重新實現

1
String LruCache.toString();

返回結果:

  • String, 返回對象的字符串表示

toJSON

返回對象的JSON 格式表示,一般返回對象定義的可讀屬性集合

1
Value LruCache.toJSON(String key = "");

調用參數:

  • key: String, 未使用

返回結果:

  • Value, 返回包含可JSON 序列化的值