[javascript] proxy
6938 ワード
proxy
中間切り取り対象の変化または近接は、
get
またはset
で追加作業を行うことができる.const myObj = {name : 'nsunny'};
const proxy = new Proxy (myObj, {
get : function(target, property, receiver) {
console.log('get value');
return target[property];
},
set : function(target, property, value) {
console.log('set value');
target[property] = value;
}
});
target
はmyObj
を表す.proxy.name = "kimnsunny";
nameを変更すると、set
関数が自動的に実行されます.
proxy.name;
呼び出しnameは、get
関数を自動的に実行します.
エージェントの利用
objをproxyに非表示にしたり、proxyで値の変更回数を計算したりできます.
const proxy = new Proxy ({name : 'nsunny', changedValue : 0}, {
get : function(target, property, receiver) {
return (property in target) ? target[property] : "anonymous";
},
set : function(target, property, value) {
console.log('set value');
target['changedValue']++;
target[property] = value;
}
});
proxy.dkfjdafdaf;
target
が呼び出されていないproperty
が呼び出されると、"anonymous"
が出力される.
proxy.name = 'kimnsunny';
name
の値を変更するたびに、changedValue
の値は1増加します.
Reference
この問題について([javascript] proxy), 我々は、より多くの情報をここで見つけました https://velog.io/@nsunny0908/javascript-proxyテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol