首页 > 编程语言 >[Javascript] Proxy - Snippets

[Javascript] Proxy - Snippets

时间:2023-05-04 13:55:44浏览次数:59  
标签:const target Javascript protectedObject Proxy new property Snippets

Blog: https://dev.to/marclipovsky/discovering-the-power-of-javascript-proxy-after-all-this-time-4627

 

Lazy loading:

const lazyLoadHandler = {
  get: function (target, property) {
    if (!target[property]) {
      target[property] = expensiveComputation();
    }
    return target[property];
  },
};

const lazyLoadedObject = new Proxy({}, lazyLoadHandler);
const result = lazyLoadedObject.expensiveProperty; // Calls expensiveComputation() on first access

 

Readonly:

const readOnlyHandler = {
  set: function (target, property, value) {
    if (property === 'readOnly') {
      throw new Error('Cannot modify read-only property');
    }
    target[property] = value;
    return true;
  },
};

const protectedObject = new Proxy({ readOnly: true }, readOnlyHandler);
protectedObject.newProperty = 'some value'; // OK
protectedObject.readOnly = false; // Throws Error

 

标签:const,target,Javascript,protectedObject,Proxy,new,property,Snippets
From: https://www.cnblogs.com/Answer1215/p/17370999.html

相关文章

  • 通过NGINX把goproxy.cn代理到无法上网的内网主机
    在可以访问goproxy.cn的Linux服务器上,安装并配置好NGINX。在NGINX配置中添加以下内容:server{listen80;server_nameproxy.example.com;location/{proxy_passhttps://goproxy.cn;proxy_set_headerHost"goproxy.cn";}}在以上配置中,我们将proxy.ex......
  • 简单总结JavaScript中的微任务和宏任务
    在JavaScript中,任务被分为宏任务和微任务。宏任务:常见的宏任务有setTimeout、setInterval、I/O、UI渲染等等。这些任务都是由浏览器或Node.js中的事件循环调度执行的,它们会被放入一个任务队列(taskqueue)中,等待执行。微任务:常见的微任务有Promise、MutationObserver等。......
  • [Javascript] avoid mutation: Array.prototype.toSpliced() vs splice()
    Array.prototype.splice()mutatestheoriginalarray.Toavoidmutation,weuseArray.prototype.slice().newmethodArray.prototype.toSpliced()returnanewarraytoavoidthemutation.constmonths=["Jan","Mar","Apr",&quo......
  • [Javascript] Avoid mutation, Array.prototype.toSorted() vs sort()
    sort(),mutatestheoriginalarray,andreturnthereferencetooriginalarrayandsorted.The toSorted() methodof Array instancesisthe copying versionofthe sort() method.Itreturnsanewarraywiththeelementssortedinascendingorder.const......
  • [Javascript] Avoid mutation, Array.prototype.toReversed() vs reverse()
    reverse()mutatestheoriginalarray,returnthereferencepointtotheoriginalarray.The toReversed() methodof Array instancesisthe copying counterpartofthe reverse() method.Itreturnsanewarraywiththeelementsinreversedorder.constite......
  • [Javascript] Array.prototype.with
    Prevously,whenwewanttoupateaniteminsideaarray:constitems=[{id:1,name:'a'},{id:2,name:'b'},{id:3,name:'c'},{id:4,name:'d'},{id:5,name:'e'}]constnewIt......
  • 前端进化笔记-JavaScript(二)
    因为作者学过其他类c语言,就不对大家都熟悉的内容进行赘述了。语法JavaScript区分大小写标识符:变量,函数,属性,函数参数的名称第一个字符必须是字母,下划线(_),美元符号($);关键字、保留字、true、false和null不能用作标识符作者在后续阅读的过程中,发现对各种名称不熟悉导致阅读不......
  • mapreduce测试时出现INFO client.RMProxy: Connecting to ResourceManager at 0.0.0.0
    如运行wordcount后出现INFOclient.RMProxy:ConnectingtoResourceManagerat0.0.0.0:8032长时间不动,我尝试修改我的yarn-site.xml配置后可以成功运行  <property>    <name>yarn.nodemanager.aux-services</name>    <value>mapreduce_shuffle</value>  </pr......
  • JavaScript相关
    Javascript基础​ JavaScript,是一门能够运行在浏览器上的脚本语言.简称JS.首先,Javascript这个名字的由来就很有意思,不少人认为Javascript和Java貌似很像.容易想象成Java的脚本.但其实不然,两者之间没有任何关系.纯粹是商业碰瓷.​ 那么既然JS是可以运行在浏览器上......
  • javaScript基础之 --- 作用域和闭包
    本文是我学习《你所不知道的javaScript上卷》的读书笔记的整理。更多详细内容,请微信搜索“前端爱好者“,戳我查看。作用域和闭包作用域是什么javaScript工作原理中的角色引擎-从头到尾负责整个javascript程序的编译及执行过程编译器-负责语法分析及代码生成......