Baseline Widely available
Reflect - ÑÑо вÑÑÑоеннÑй обÑекÑ, коÑоÑÑй пÑедоÑÑавлÑÐµÑ Ð¼ÐµÑÐ¾Ð´Ñ Ð´Ð»Ñ Ð¿ÐµÑеÑ
ваÑÑваемÑÑ
JavaScript опеÑаÑий. ÐÑи меÑÐ¾Ð´Ñ Ð°Ð½Ð°Ð»Ð¾Ð³Ð¸ÑÐ½Ñ Ð¼ÐµÑодам proxy handler. Reflect
- ÑÑо не ÑÑнкÑионалÑнÑй, а пÑоÑÑой обÑекÑ, он не ÑвлÑеÑÑÑ ÑконÑÑÑÑиÑованнÑм.
РоÑлиÑие Ð¾Ñ Ð±Ð¾Ð»ÑÑинÑÑва глобалÑнÑÑ
обÑекÑов, Reflect
- ÑÑо не конÑÑÑÑкÑоÑ. ÐÑ Ð½Ðµ можеÑе иÑполÑзоваÑÑ ÐµÐ³Ð¾ Ñ Ð¾Ð¿ÐµÑаÑоÑом new
или вÑзÑваÑÑ Reflect,
как ÑÑнкÑиÑ. ÐÑе ÑвойÑÑва и меÑÐ¾Ð´Ñ Ð¾Ð±ÑекÑа Reflect
ÑвлÑÑÑÑÑ ÑÑаÑиÑеÑкими (Ñак же, как и Ñ Ð¾Ð±ÑекÑа Math
).
ÐбÑÐµÐºÑ Reflect
обеÑпеÑÐ¸Ð²Ð°ÐµÑ ÑабоÑÑ ÑÑаÑиÑеÑкиÑ
ÑÑнкÑий, назÑваÑÑиеÑÑ Ñак же, как меÑÐ¾Ð´Ñ proxy handler. ÐекоÑоÑÑе из ÑÑиÑ
меÑодов - Ñе же, ÑÑо и ÑооÑвеÑÑÑвÑÑÑие им меÑÐ¾Ð´Ñ ÐºÐ»Ð°ÑÑа Object
.
Reflect.apply()
ÐÑзÑÐ²Ð°ÐµÑ ÑелевÑÑ ÑÑнкÑÐ¸Ñ Ñ Ð°ÑгÑменÑами, пеÑеданнÑми в паÑамеÑÑе args
. СмоÑÑиÑе Ñакже Function.prototype.apply()
.
Reflect.construct()
ÐпеÑаÑÐ¾Ñ new
как ÑÑнкÑиÑ. ÐналогиÑно new target(...args)
. Также пÑедоÑÑавлÑÐµÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ Ð¾Ð¿ÑеделиÑÑ Ð´ÑÑгой пÑоÑоÑип.
Reflect.defineProperty()
ÐоÑ
ож на Object.defineProperty()
. ÐозвÑаÑÐ°ÐµÑ Boolean
.
Reflect.deleteProperty()
ÐпеÑаÑÐ¾Ñ delete
как ÑÑнкÑиÑ. ÐналогиÑно delete target[name]
.
Reflect.enumerate()
ÐоÑ
ож на Ñикл for...in
. ÐозвÑаÑÐ°ÐµÑ Ð¸ÑеÑаÑÐ¾Ñ Ñ ÑобÑÑвеннÑми пеÑеÑиÑлÑемÑми и наÑледÑемÑми ÑвойÑÑвами Ñелевого обÑекÑа.
Reflect.get()
ФÑнкÑиÑ, коÑоÑÐ°Ñ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ Ð·Ð½Ð°Ñение ÑвойÑÑв.
Reflect.getOwnPropertyDescriptor()
ÐналогиÑно Object.getOwnPropertyDescriptor()
. ÐозвÑаÑÐ°ÐµÑ Ð´ÐµÑкÑипÑÐ¾Ñ Ñказанного ÑвойÑÑва еÑли пÑиÑÑÑÑÑвÑÐµÑ Ð² обÑекÑе, инаÑе undefined
.
Reflect.getPrototypeOf()
ÐналогиÑно Object.getPrototypeOf()
.
Reflect.has()
ÐпеÑаÑÐ¾Ñ in
как ÑÑнкÑиÑ. ÐозвÑаÑÐ°ÐµÑ Ð·Ð½Ð°Ñение Boolean
в завиÑимоÑÑи Ð¾Ñ ÑакÑа налиÑÐ¸Ñ ÑобÑÑвенного или наÑледованного ÑвойÑÑва.
Reflect.isExtensible()
ÐналогиÑно Object.isExtensible()
.
Reflect.ownKeys()
ÐозвÑаÑÐ°ÐµÑ Ð¼Ð°ÑÑив ÑÑÑок Ñ Ð¸Ð¼ÐµÐ½Ð°Ð¼Ð¸ ÑобÑÑвеннÑÑ (не наÑледованнÑÑ ) ÑвойÑÑв.
Reflect.preventExtensions()
ÐналогиÑно Object.preventExtensions()
. ÐозвÑаÑÐ°ÐµÑ Boolean
.
Reflect.set()
ФÑнкÑиÑ, пÑиÑваиваÑÑÐ°Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ ÑвойÑÑвам. ÐозвÑаÑÐ°ÐµÑ Boolean
знаÑение true
пÑи ÑÑпеÑном вÑполнении.
Reflect.setPrototypeOf()
ФÑнкÑиÑ, пÑиÑваиваÑÑÐ°Ñ Ð¿ÑоÑоÑип ÑÐµÐ»ÐµÐ²Ð¾Ð¼Ñ Ð¾Ð±ÑекÑÑ.
const duck = {
name: "Maurice",
color: "white",
greeting: function () {
console.log(`Quaaaack! My name is ${this.name}`);
},
};
Reflect.has(duck, "color");
// true
Reflect.has(duck, "haircut");
// false
ÐозвÑÐ°Ñ ÑобÑÑвеннÑÑ
клÑÑей обÑекÑа
Reflect.ownKeys(duck);
// [ "name", "color", "greeting" ]
Ðобавление нового ÑвойÑÑва в обÑекÑ
Reflect.set(duck, "eyes", "black");
// веÑнÑÑÑÑ "true" еÑли вÑзов ÑÑпеÑен
// обÑÐµÐºÑ "duck" ÑепеÑÑ ÑодеÑÐ¶Ð¸Ñ ÑвойÑÑво "eyes" Ñо знаÑением "black"
СпеÑиÑикаÑии СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами СмоÑÑиÑе Ñакже
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4