本文實例講述了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: 123 inst.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的程序設計有所幫助。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com