Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

01-proxy #354

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 13 additions & 13 deletions 1-js/99-js-misc/01-proxy/article.md
Original file line number Diff line number Diff line change
@@ -1,36 +1,36 @@

# Proxy and Reflect

A *proxy* wraps another object and intercepts operations, like reading/writing properties and others, optionally handling them on its own, or transparently allowing the object to handle them.
Bir *proxy* başka bir nesneyi sarar ve okuma/yazma özellikleri ve diğerleri gibi işlemleri durdurur, isteğe bağlı olarak bunları kendi başına yönetir veya şeffaf bir şekilde nesnenin bunları işlemesine izin verir.

Proxies are used in many libraries and some browser frameworks. We'll see many practical applications in this chapter.
Proxy'ler birçok kitaplıkta ve bazı tarayıcı çerçevelerinde kullanılır. Bu bölümde birçok pratik uygulama göreceğiz.
thelordax0 marked this conversation as resolved.
Show resolved Hide resolved

The syntax:
Söz dizimi:

```js
let proxy = new Proxy(target, handler)
```

- `target` -- is an object to wrap, can be anything, including functions.
- `handler` -- an object with "traps": methods that intercept operations., e.g. `get` for reading a property, `set` for writing a property, etc.
- `target` -- sarılacak bir nesnedir, fonksiyonlar dahil herhangi bir şey olabilir.
- `handler` -- 'tuzaklara' sahip bir nesne: işlemleri engelleyen yöntemler, ör. Bir özelliği okumak için 'get', bir özelliği yazmak için 'set' vb.

For operations on `proxy`, if there's a corresponding trap in `handler`, then it runs, and the proxy has a chance to handle it, otherwise the operation is performed on `target`.
Proxy üzerinde yapılan işlemlerde, eğer `handler` da buna karşılık gelen bir tuzak varsa çalışır ve `proxy`'nin onu ele alma şansı vardır, aksi takdirde işlem `hedef` üzerinde gerçekleştirilir.

As a starting example, let's create a proxy without any traps:
Başlangıç ​​örneği olarak herhangi bir tuzak içermeyen bir proxy oluşturalım:

```js run
let target = {};
let proxy = new Proxy(target, {}); // empty handler
let proxy = new Proxy(target, {}); // boş handler

proxy.test = 5; // writing to proxy (1)
alert(target.test); // 5, the property appeared in target!
proxy.test = 5; // proxy'ye yazıyoruz (1)
alert(target.test); // 5, the özellik hedefte göründü!

alert(proxy.test); // 5, we can read it from proxy too (2)
alert(proxy.test); // 5, bunu proxy'den de okuyabiliriz (2)

for(let key in proxy) alert(key); // test, iteration works (3)
for(let key in proxy) alert(key); // test, iterasyon çalışır (3)
```

As there are no traps, all operations on `proxy` are forwarded to `target`.
`proxy`'de hiç bir tuzak olmadığından `target`'e ilerlenir.

1. A writing operation `proxy.test=` sets the value on `target`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Buraları da çevirebilir misiniz?

2. A reading operation `proxy.test` returns the value from `target`.
Expand Down