๐ด Generators
const friends = ["Jeong", "Seung", "Ryong", "Hello", "World"];
function* friendTeller() {
for (const friend of friends) {
yield friend;
}
}
const friendLooper = friendTeller();
> friendLooper.next()
// { value: "Jeong", done: false }
> friendLooper.next()
// { value: "Sueng", done: false }
> friendLooper.next()
// { value: "Ryong", done: false }
> friendLooper.next()
// { value: "Hello", done: false }
> friendLooper.next()
// { value: "World", done: false }
> friendLooper.next()
// { value: undefined, done: true }
๐ Proxies
const userObj = {
username: "ryong",
age: 28,
password: 1234
};
const userFilter = {
get: (target, prop, receiver) => {
return prop === "password" ? `${"*".repeat(5)}` : target[prop];
},
set: () => {
console.log("Somebody wrote something");
},
deleteProperty: (target, prop) => {
if (prop === "password") {
return;
} else {
target[prop] = "DELETED";
}
}
};
const filteredUser = new Proxy(userObj, userFilter);
> filteredUser
// { username: "ryong", age: 28, password: 1234 }
> delete filteredUser.password
// false
> delete filteredUser.username
// { username: "DELETED", age: 28, password: 1234 }
'JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ JS ] LocalStorage, SessionStorage, Cookie ๋ค๋ฃจ๊ธฐ (0) | 2022.08.08 |
---|---|
[ JS ] Base64 / Blob / ArrayBuffer / File ๋ค๋ฃจ๊ธฐ (0) | 2022.08.08 |
[ JS ] Symbol, Set and Map (0) | 2022.07.06 |
[ JS ] Classes (0) | 2022.07.06 |
[ JS ] Async / Await (0) | 2022.07.06 |