In es6, proxy is used to intercept specified operations on an object, and can filter and rewrite external access; Proxy sets up a layer of "interception" in front of the target object to prevent external access to the object. All must pass this layer of interception, and the syntax is "new Proxy(target, handler);".
The operating environment of this tutorial: Windows 10 system, ECMAScript version 6.0, Dell G3 computer.
What is the usage of proxy in es6
Proxy can be understood as setting up a layer of "interception" before the target object. External access to the object must first pass through this layer of interception. Therefore, a mechanism is provided to filter and rewrite external access. The original meaning of the word Proxy is agency. It is used here to mean that it "acts on behalf of" certain operations. It can be translated as "agent". The following is a definition of proxy from the official documentation.
let p = new Proxy(target, handler);
target: The target object that needs to be wrapped by Proxy (can be any type of object, including native arrays, functions, or even another proxy).
handler: An object whose properties are functions that define the behavior of the agent when an operation is performed (can be understood as some kind of trigger).
ES6 proposes a new feature, proxy, which is used to intercept specified operations on an object. This function is very useful. To give an example:
var engineer = { name: 'Joe Sixpack', salary: 50 }; var interceptor = { set: function (receiver, property, value) { console.log(property, 'is changed to', value); receiver[property] = value; } }; engineer = Proxy(engineer, interceptor);
The engineer object is replaced by the proxy object constructed by the proxy Proxy. The second parameter passed into the Proxy is a processor function. A processor function has multiple methods, such as get, set and other methods. The set method here can intercept all property assignment operations performed on the proxy object.
When we perform the following assignment:
engineer.salary = 60;
will trigger the processor and output information:
salary is changed to 60
Whenever the proxy object is assigned a value, the processor function will be called, so that Can be used to debug certain problems.
Of course, Proxy was not born just for debugging. If you have used Sencha Touch or AngularJS, you will find that these frameworks have functions similar to data model binding.
The author has used a proxy in Sencha Touch. The code is as follows:
proxy:{//数据代理 // type:'localstorage', // id:'bills', // limitParam:'limit', // pageParam:'page', //将用户代理改为sql,通过websql来解决localstorage的5MB存储上限的问题 type:'sql', database:'myDB', table:'bill', }, //filters:[{property:"kind",value:"无"}],//过滤属性 listeners:{ removerecords:function(){ console.log("数据被删除"); }, addrecords:function(){ console.log("数据被追加"); }, updaterecord:function(){ console.log("数据被修改"); }, }
As you can see, it uses a method of monitoring setters and getters, while the one used in Angular It's a dirty test. . When we have Proxy, these specific detection methods can be simplified for simple data model binding.
【Related recommendations: javascript video tutorial, web front-end】
The above is the detailed content of What is the usage of proxy in es6. For more information, please follow other related articles on the PHP Chinese website!

Using ID selectors is not inherently bad in CSS, but should be used with caution. 1) ID selector is suitable for unique elements or JavaScript hooks. 2) For general styles, class selectors should be used as they are more flexible and maintainable. By balancing the use of ID and class, a more robust and efficient CSS architecture can be implemented.

HTML5'sgoalsin2024focusonrefinementandoptimization,notnewfeatures.1)Enhanceperformanceandefficiencythroughoptimizedrendering.2)Improveaccessibilitywithrefinedattributesandelements.3)Addresssecurityconcerns,particularlyXSS,withwiderCSPadoption.4)Ensur

HTML5aimedtoimprovewebdevelopmentinfourkeyareas:1)Multimediasupport,2)Semanticstructure,3)Formcapabilities,and4)Offlineandstorageoptions.1)HTML5introducedandelements,simplifyingmediaembeddingandenhancinguserexperience.2)Newsemanticelementslikeandimpr

IDsshouldbeusedforJavaScripthooks,whileclassesarebetterforstyling.1)Useclassesforstylingtoallowforeasierreuseandavoidspecificityissues.2)UseIDsforJavaScripthookstouniquelyidentifyelements.3)Avoiddeepnestingtokeepselectorssimpleandimproveperformance.4

Classselectorsareversatileandreusable,whileidselectorsareuniqueandspecific.1)Useclassselectors(denotedby.)forstylingmultipleelementswithsharedcharacteristics.2)Useidselectors(denotedby#)forstylinguniqueelementsonapage.Classselectorsoffermoreflexibili

IDsareuniqueidentifiersforsingleelements,whileclassesstylemultipleelements.1)UseIDsforuniqueelementsandJavaScripthooks.2)Useclassesforreusable,flexiblestylingacrossmultipleelements.

Using a class-only selector can improve code reusability and maintainability, but requires managing class names and priorities. 1. Improve reusability and flexibility, 2. Combining multiple classes to create complex styles, 3. It may lead to lengthy class names and priorities, 4. The performance impact is small, 5. Follow best practices such as concise naming and usage conventions.

ID and class selectors are used in CSS for unique and multi-element style settings respectively. 1. The ID selector (#) is suitable for a single element, such as a specific navigation menu. 2.Class selector (.) is used for multiple elements, such as unified button style. IDs should be used with caution, avoid excessive specificity, and prioritize class for improved style reusability and flexibility.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

MantisBT
Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

VSCode Windows 64-bit Download
A free and powerful IDE editor launched by Microsoft

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool
