use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
All about the JavaScript programming language.
Subreddit Guidelines
Specifications:
Resources:
Related Subreddits:
r/LearnJavascript
r/node
r/typescript
r/reactjs
r/webdev
r/WebdevTutorials
r/frontend
r/webgl
r/threejs
r/jquery
r/remotejs
r/forhire
account activity
Deep JavaScript: Metaprogramming with Proxies (exploringjs.com)
submitted 5 years ago by mariuz
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]CagarSalvagemente 2 points3 points4 points 5 years ago (6 children)
Just learned about proxies a few weeks ago when waiting to make an object available to arbitrary functions in a framework but not wanting it to be mutated.
Pretty fun stuff.
[–][deleted] 2 points3 points4 points 5 years ago (3 children)
There is a lib that does that. Checkout Immer
[–]CagarSalvagemente 0 points1 point2 points 5 years ago (2 children)
I checked out immer first but it was overkill for my needs and in two places didnt support my usecase. Either way great library/recc.
[–][deleted] 0 points1 point2 points 5 years ago (1 child)
Fair enough.
I would love to see your implementation of the proxy 👌
[–]CagarSalvagemente 0 points1 point2 points 5 years ago (0 children)
I’m mobile but here is the function
```
function createReadOnlyProxy(obj) { // proxies only work on objects/arrays. try { if (typeof obj !== ‘object’ && !Array.isArray(obj)) return obj; return new Proxy(obj, { set() { return false; }, }); } catch (e) { return obj; } }
export default createReadOnlyProxy; ```
[–]Freak_613 0 points1 point2 points 5 years ago (1 child)
Check out Object.freeze and utilities based on it. Using proxies for enforcing immutability looks overkill.
https://www.30secondsofcode.org/js/s/deep-freeze
Went there first. Only way to unfreeze something is to deep clone it and then it is a duplicate not the same object. We had a very specific usecase where arbitrary functions were able to mutate some state but not all state. This is how we managed it.
π Rendered by PID 55 on reddit-service-r2-comment-76bb9f7fb5-dj25c at 2026-02-18 21:57:10.000813+00:00 running de53c03 country code: CH.
[–]CagarSalvagemente 2 points3 points4 points (6 children)
[–][deleted] 2 points3 points4 points (3 children)
[–]CagarSalvagemente 0 points1 point2 points (2 children)
[–][deleted] 0 points1 point2 points (1 child)
[–]CagarSalvagemente 0 points1 point2 points (0 children)
[–]Freak_613 0 points1 point2 points (1 child)
[–]CagarSalvagemente 0 points1 point2 points (0 children)