本文實例講述了ES6 javascript中class類的get與set用法。分享給大家供大家參考,具體如下:
與 ES5 一樣, 在 Class 內部可以使用get和set關鍵字, 對某個屬性設置存值函數和取值函數, 攔截該屬性的存取行為。
class MyClass { constructor() { // ... } get prop() { return 'getter'; } set prop(value) { console.log('setter: ' + value); }}let inst = new MyClass();inst.prop = 123;// setter: 123inst.prop// 'getter'
上面代碼中, prop屬性有對應的存值函數和取值函數, 因此賦值和讀取行為都被自定義了。
存值函數和取值函數是設置在屬性的 descriptor 對象上的。
class CustomHTMLElement { constructor(element) { this.element = element; } get html() { return this.element.innerHTML; } set html(value) { this.element.innerHTML = value; }}var descriptor = Object.getOwnPropertyDescriptor( CustomHTMLElement.prototype, "html");"get" in descriptor // true "set" in descriptor // true
上面代碼中, 存值函數和取值函數是定義在html屬性的描述對象上面, 這與 ES5 完全一致。
更多相關內容可查看本站專題:《ECMAScript6(ES6)入門教程》、《JavaScript數組操作技巧總結》、《JavaScript字符與字符串操作技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript錯誤與調試技巧總結》及《javascript面向對象入門教程》
希望本文所述對大家基于ECMAScript的程序設計有所幫助。
新聞熱點
疑難解答