You are currently viewing JavaScript | Proxy() Object

JavaScript | Proxy() Object

Прокси-объект в 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-файле, вставив указанный выше тег в скрипт и проверьте вывод в консоли любого веб-браузера.