JavaScript高级程序设计第四版学习记录-第九章代理与反射
发布日期:2021-05-14 11:07:07 浏览次数:5 分类:精选文章

本文共 3976 字,大约阅读时间需要 13 分钟。

������������

���������ECMAScript 6���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

���������������

���������������������������������������������������������������������������������Proxy���������������������������������������������������

const target = { id: 'target' };const handler = {};const proxy = new Proxy(target, handler);

������������������������������������������������������������������������������������������

console.log(proxy.id); // ������ 'target'target.id = 'foo';console.log(proxy.id); // ������ 'foo'proxy.id = 'bar';console.log(target.id); // ������ 'bar'

������������������

������������������������������������������������������������������������������������������������������������������������������get���set���has���������������������������������������������������������������������������������

���������

const target = { foo: 'bar' };const handler = {  get(target, property, receiver) {    console.log(`������������������ '${property}'`);    return Reflect.get(...arguments);  }};const proxy = new Proxy(target, handler);console.log(proxy.foo); // ������ '������������������ 'foo''

���������������������target������������������������������������������receiver������������proc������������������

������API

������API���������������������������������������������������������������������������������������������ECMAScript���������������������������������������������������������������������������������������Reflect.get���Reflect.set���Reflect.has���Reflect.defineProperty������

���������

const target = { foo: 'bar' };const handler = {  get(target, property, receiver) {    console.log(`��������������� '${property}'`);    return Reflect.get(...arguments);  }};const proxy = new Proxy(target, handler);console.log(proxy.foo); // ������ 'bar'

������������������

���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������TypeError���

���������������

Proxy.revocable()���������������������������������������������������������revoke()������������������������������������������������TypeError���������������������������������������������������������������������������������������������������������

���������

const target = { id: 'target' };const handler = {};const { proxy, revoke } = Proxy.revocable(target, handler);console.log(proxy.id); // ������ 'target'revoke();console.log(proxy.id); // ������ TypeError

������������API

������API���������������������������������������������������������������������Reflect.defineProperty()���������������������������������������������������������������������������������������

const target = {};if (Reflect.defineProperty(target, 'foo', { value: 'bar' })) {  console.log('������������������');} else {  console.log('������');}

������������������������

���������������ECMAScript 6������������������������������������������������������������������������������this������������������������������������������������������������������������������Some���������������Date���������������������������������TypeError���

������������

���������ECMAScript 6���������������������������������������������

  • ������������������������������
  • ������������������������������
  • ������API���������������
  • ������������������������������
  • Proxy.revocable()���������������������
  • ������API������������������������������������

���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

上一篇:vue2.0官网学习记录
下一篇:前端实习面试总结

发表评论

最新留言

不错!
[***.144.177.141]2025年04月19日 23时11分29秒