Baseline Widely available
СÑаÑиÑеÑкий меÑод Reflect.apply()
вÑзÑÐ²Ð°ÐµÑ Ð¿ÐµÑеданнÑÑ ÐµÐ¼Ñ ÑÑнкÑÐ¸Ñ Ñ ÑказаннÑми аÑгÑменÑами.
console.log(Reflect.apply(Math.floor, undefined, [1.75]));
// Expected output: 1
console.log(
Reflect.apply(String.fromCharCode, undefined, [104, 101, 108, 108, 111]),
);
// Expected output: "hello"
console.log(
Reflect.apply(RegExp.prototype.exec, /ab/, ["confabulation"]).index,
);
// Expected output: 4
console.log(Reflect.apply("".charAt, "ponies", [3]));
// Expected output: "i"
СинÑакÑиÑ
Reflect.apply(target, thisArgument, argumentsList)ÐаÑамеÑÑÑ
ФÑнкÑиÑ, коÑоÑÑÑ Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ вÑзваÑÑ.
ÐнаÑение пеÑеменной this
во вÑÐµÐ¼Ñ Ð²Ñзова ÑÑнкÑии target
.
ÐбÑекÑ, подобнÑй маÑÑивÑ, ÑодеÑжаÑий аÑгÑменÑÑ, Ñ ÐºÐ¾ÑоÑÑми должна бÑÑÑ Ð²Ñзвана ÑÑнкÑÐ¸Ñ target
.
ÐозвÑаÑаеÑÑÑ Ð·Ð½Ð°Ñение, коÑоÑое веÑнÑÑ ÑÑнкÑÐ¸Ñ target
Ñ ÑказаннÑм знаÑением пеÑеменной this
и аÑгÑменÑами.
TypeError
, еÑли ÑÑнкÑÐ¸Ñ target
не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð²Ñзвана.
Ð ES5, обÑÑно иÑполÑзÑеÑÑÑ Ð¼ÐµÑод Function.prototype.apply()
, ÑÑÐ¾Ð±Ñ Ð²ÑзваÑÑ ÑÑнкÑÐ¸Ñ Ñ ÑказаннÑм знаÑением пеÑеменной this
и arguments
, пеÑеданнÑми как маÑÑив (или маÑÑивоподобнÑй обÑекÑ).
Function.prototype.apply.call(Math.floor, undefined, [1.75]);
С иÑполÑзованием Reflect.apply
ÑÑо дейÑÑвие ÑÑановиÑÑÑ Ð±Ð¾Ð»ÐµÐµ понÑÑнÑм и Ð·Ð°Ð½Ð¸Ð¼Ð°ÐµÑ Ð¼ÐµÐ½ÑÑе меÑÑа в коде.
Reflect.apply()
Reflect.apply(Math.floor, undefined, [1.75]);
// 1;
Reflect.apply(String.fromCharCode, undefined, [104, 101, 108, 108, 111]);
// "hello"
Reflect.apply(RegExp.prototype.exec, /вÑ/, [
"пÑевÑÑокомногоÑаÑÑмоÑÑиÑелÑÑÑвÑÑÑий",
]).index;
// 4
Reflect.apply("".charAt, "пони", [3]);
// "и"
СпеÑиÑикаÑии СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами СмоÑÑиÑе Ñакже
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