Прокси-объект в JavaScript используется для определения пользовательского поведения основных операций (например, поиск свойств, присвоение, перечисление, вызов функций и т.д.).
Синтаксис:
var p = new Proxy(target, handler);
Параметр: Прокси-объект принимает два параметра, как указано выше и описано ниже:
- target (цель): Целевой объект (может быть любым типом объекта, включая функцию, класс или даже другой прокси-сервер) для переноса с помощью прокси.
- handler (обработчик): Объект, свойства которого являются функциями, определяющими поведение прокси-сервера при выполнении над ним операции.
Пример:
<script>
const Person = {
Name: 'John Nash',
Age: 25
};
const handler = {
// target represents the Person while prop represents
// proxy property.
get: function(target, prop) {
if (prop === 'FirstName') {
return target.Name.split(' ')[0];
}
if (prop === 'LastName') {
return target.Name.split(' ').pop();
}
else {
return Reflect.get(target,prop);
}
}
};
const proxy1 = new Proxy(Person, handler);
document.write(proxy1 + "<br>");
// Though there is no Property as FirstName and LastName,
// still we get them as if they were property not function.
document.write(proxy1.FirstName + "<br>");
document.write(proxy1.LastName + "<br>");
</script>
Выход:
[object Object]
John
Nash
Примечание: Приведенный выше код можно запустить непосредственно в терминале при условии установки NodeJS, в противном случае запустите его в HTML-файле, вставив указанный выше тег в скрипт и проверьте вывод в консоли любого веб-браузера.