Baseline Widely available *
Ðа Ñамом деле ÐºÐ°Ð¶Ð´Ð°Ñ JavaScript-ÑÑнкÑÐ¸Ñ ÑвлÑеÑÑÑ Ð¾Ð±ÑекÑом Function
. ÐÑо легко пÑовеÑиÑÑ, вÑполнив пÑовеÑÐºÑ (function(){}).constructor === Function
, коÑоÑÐ°Ñ Ð²ÐµÑнÑÑ true.
Function()
СоздаÑÑ Ð½Ð¾Ð²Ñй обÑÐµÐºÑ Function
. ÐÑзов конÑÑÑÑкÑоÑа напÑÑмÑÑ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑÐµÑ ÑоздаваÑÑ ÑÑнкÑии пÑогÑаммнÑм пÑÑÑм. Такой ÑпоÑоб пÑедÑÑавлÑÐµÑ ÑгÑÐ¾Ð·Ñ Ð´Ð»Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑÑи, а Ñакже неÑÑÑ ÑазнÑе (Ñ
оÑÑ Ð½Ðµ Ñакие знаÑиÑелÑнÑе) пÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ñ Ð¿ÑоизводиÑелÑноÑÑÑÑ Ð¿Ñи иÑполÑзовании Ñ Global_Objects/eval
. Ðднако в оÑлиÑие Ð¾Ñ eval, конÑÑÑÑкÑÐ¾Ñ Function
ÑоздаÑÑ ÑÑнкÑии, вÑполнÑемÑе ÑолÑко в глобалÑной облаÑÑи видимоÑÑи.
Function.prototype.arguments
ÐаÑÑив Ñ Ð¿ÐµÑеданнÑми ÑÑнкÑии аÑгÑменÑами. ÐÑо ÑÑÑаÑевÑее ÑвойÑÑво обÑекÑа Function
. ÐмеÑÑо него иÑполÑзÑйÑе обÑÐµÐºÑ arguments
(доÑÑÑпнÑй внÑÑÑи ÑÑнкÑии).
Function.prototype.caller
СодеÑÐ¶Ð¸Ñ ÑÑнкÑиÑ, коÑоÑÐ°Ñ Ð²Ñзвала ÑекÑÑÑÑ Ð²ÑполнÑÑÑÑÑÑÑ ÑÑнкÑиÑ. ÐÑо ÑÑÑаÑевÑее ÑвойÑÑво, коÑоÑое ÑабоÑÐ°ÐµÑ ÑолÑко в ÑÑнкÑиÑÑ Ð±ÐµÐ· вклÑÑÑнного ÑÑÑогого Ñежима.
Function.prototype.displayName
ÐÑобÑажаемое Ð¸Ð¼Ñ ÑÑнкÑии.
Function.prototype.length
СодеÑÐ¶Ð¸Ñ ÐºÐ¾Ð»Ð¸ÑеÑÑво аÑгÑменÑов в ÑÑнкÑии.
Function.prototype.name
ÐÐ¼Ñ ÑÑнкÑии.
Function.prototype.apply(thisArg [, argsArray])
ÐÑзÑÐ²Ð°ÐµÑ ÑÑнкÑÐ¸Ñ Ð¸ ÑÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ ÐµÑ this
на пеÑеданнÑй thisArg
. ÐÑгÑменÑÑ Ð¼Ð¾Ð³ÑÑ Ð±ÑÑÑ Ð¿ÐµÑÐµÐ´Ð°Ð½Ñ Ð² виде обÑекÑа Array
.
Function.prototype.bind(thisArg[, arg1[, arg2[, ...argN]]])
Ð¡Ð¾Ð·Ð´Ð°ÐµÑ Ð½Ð¾Ð²ÑÑ ÑÑнкÑиÑ, пÑи вÑзове коÑоÑой ÐµÑ this
бÑÐ´ÐµÑ ÑÑÑановлен на thisArg
. Ðожно Ñакже ÑказаÑÑ ÑÑд аÑгÑменÑов, коÑоÑÑе бÑдÑÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ñ Ðº аÑгÑменÑам пÑи вÑзове новой пÑивÑзанной ÑÑнкÑии.
Function.prototype.call(thisArg[, arg1, arg2, ...argN])
ÐÑзÑÐ²Ð°ÐµÑ ÑÑнкÑÐ¸Ñ Ð¸ ÑÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ ÐµÑ this
на пеÑеданное знаÑение. ÐÑгÑменÑÑ Ð¼Ð¾Ð³ÑÑ Ð±ÑÑÑ Ð¿ÐµÑÐµÐ´Ð°Ð½Ñ ÐºÐ°Ðº еÑÑÑ.
Function.prototype.toString()
ÐозвÑаÑÐ°ÐµÑ ÑÑÑÐ¾ÐºÑ Ñ Ð¸ÑÑ
однÑм кодом ÑÑнкÑии. ÐеÑеопÑеделÑÐµÑ Ð¼ÐµÑод Object.prototype.toString
.
ФÑнкÑии, ÑозданнÑе ÑеÑез конÑÑÑÑкÑÐ¾Ñ Function
, не имеÑÑ Ð´Ð¾ÑÑÑпа к ÑобÑÑÐ²ÐµÐ½Ð½Ð¾Ð¼Ñ ÐºÐ¾Ð½ÑекÑÑÑ Ð¸ÑполнениÑ, Ñ.е. они вÑегда ÑоздаÑÑÑÑ Ð² глобалÑной облаÑÑи видимоÑÑи. ÐÑи вÑполнении ÑакиÑ
ÑÑнкÑий, они ÑмогÑÑ Ð¾Ð±ÑаÑаÑÑÑÑ ÑолÑко к Ñвоим локалÑнÑм и глобалÑнÑм пеÑеменнÑм, но не к пеÑеменнÑм в Ñой облаÑÑи видимоÑÑи, в коÑоÑой вÑзÑвалÑÑ ÐºÐ¾Ð½ÑÑÑÑкÑÐ¾Ñ Function
. Ð ÑÑом они оÑлиÑаÑÑÑÑ Ð¾Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Global_Objects/eval
Ñ ÑÑнкÑиÑми-вÑÑажениÑми.
var x = 10;
function createFunction1() {
var x = 20;
return new Function("return x;"); // здеÑÑ |x| ÑÑÑлаеÑÑÑ Ð½Ð° глобалÑнÑй |x|
}
function createFunction2() {
var x = 20;
function f() {
return x; // здеÑÑ |x| ÑÑÑлаеÑÑÑ Ð½Ð° локалÑнÑй |x| вÑÑе
}
return f;
}
var f1 = createFunction1();
console.log(f1()); // 10
var f2 = createFunction2();
console.log(f2()); // 20
ХоÑÑ ÑÑÐ¾Ñ ÐºÐ¾Ð´ ÑабоÑÐ°ÐµÑ Ð² бÑаÑзеÑаÑ
, в окÑÑжении Node.js вÑзов f1()
пÑиведÑÑ Ðº оÑибке ReferenceError
, поÑÐ¾Ð¼Ñ ÑÑо x
не бÑÐ´ÐµÑ Ð½Ð°Ð¹Ð´ÐµÐ½. ÐÑо пÑоиÑÑ
Ð¾Ð´Ð¸Ñ Ð¸Ð·-за Ñого, ÑÑо облаÑÑÑ Ð²Ð¸Ð´Ð¸Ð¼Ð¾ÑÑи веÑÑ
него ÑÑÐ¾Ð²Ð½Ñ Ð² Node не ÑвлÑеÑÑÑ Ð³Ð»Ð¾Ð±Ð°Ð»Ñной облаÑÑÑÑ Ð²Ð¸Ð´Ð¸Ð¼Ð¾ÑÑи, поÑÑÐ¾Ð¼Ñ x
ÑÑÑлаеÑÑÑ Ð½Ð° локалÑнÑÑ Ð¿ÐµÑеменнÑÑ Ð² пÑеделаÑ
ÑекÑÑего модÑлÑ.
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