第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為類動態(tài)設置 getter 和 setter

為類動態(tài)設置 getter 和 setter

白板的微信 2023-11-11 21:37:05
我可以在創(chuàng)建類之后從字符串值外部設置類的屬性,如下所示class Class {  //Nothing}let storageClass = new Class();storageClass['value'] = 'Hello World';document.write(storageClass.value);但我需要跟蹤所有屬性的更改,以便我可以使用get和set,但我無法僅基于 添加新屬性storageClass['value'] = 'Hello World';。例如,如果我想做的話,我必須添加 get 和 set 函數(shù)storageClass['valueNumberTwo'] = 'A Second Value';class Class {  get value() {    return this._value;  }    set value(value) {    this._value = value;    console.log('Value Changed');  }}let storageClass = new Class();storageClass['value'] = 'Hello World';document.write(storageClass.value);如果我知道創(chuàng)建類時可以創(chuàng)建的所有屬性,是否有辦法仍然可以做到這一點?
查看完整描述

2 回答

?
largeQ

TA貢獻2039條經(jīng)驗 獲得超8個贊

您可以使用 aProxy來處理動態(tài)獲取和設置操作。

class Class {

? constructor() {

? ? return new Proxy(this, {

? ? ? get(target, prop, receiver) {

? ? ? ? return target['_' + prop];

? ? ? },

? ? ? set(obj, prop, value) {

? ? ? ? obj['_' + prop] = value;

? ? ? ? console.log('value changed');

? ? ? }

? ? });

? }

}

let storageClass = new Class;

storageClass['value'] = 'Hello World';

document.write(storageClass.value);



查看完整回答
反對 回復 2023-11-11
?
呼啦一陣風

TA貢獻1802條經(jīng)驗 獲得超6個贊

get/set您可以使用 ES6 構造為所有屬性創(chuàng)建Proxy,它允許您為對象實現(xiàn)低級方法(例如get,在訪問任何屬性時調用該方法)。


請注意,作為一項 ES6 功能,它具有廣泛但不通用的瀏覽器支持(例如,在 Internet Explorer 中不起作用),并且無法進行多填充,因為它使用的功能在舊版本的 JavaScript 中不存在。


查看完整回答
反對 回復 2023-11-11
  • 2 回答
  • 0 關注
  • 166 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號