Function.prototype.toString()‎

من موسوعة حسوب

الدالة Function.prototype.toString()‎ تعيد سلسلةً نصيةً لتمثيل الشيفرة المصدرية للدالة.

البنية العامة

function.toString()

القيمة المعادة

سلسلة نصية تُمثِّل الشيفرة المصدرية للدالة.

الوصف

يُعيد الكائن Function تعريف الدالة toString الموروثة من الكائن Object؛ وستُعيد هذه الدالة، عند استدعائها على الدوال التي عرَّفها المستخدم، سلسلةً نصيةً للشيفرة المصدرية التي تُستخدَم لتعريف الدوال.

ستستدعي JavaScript هذه الدالة تلقائيًا عند محاولة استخدام الدالة كقيمة نصية، مثلًا: عند إضافة سلسلة نصية إلى الدالة.

استدعاء الدالة toString على دوال الكائنات المُضمَّنة في اللغة أو على الدوال المُنشَأة عبر الدالة Function.prototype.bind سيؤدي إلى إعادة native function string بما يشبه ما يلي:

"function () {\n    [native code]\n}"

إذا استدعينا الدالة toString على دالة مُعرَّفة عبر الدالة البانية Function، فستُعيد الشيفرة المصدرية للدالة المُنشَأة تحت اسم "anonymous".

أمثلة

سنورد في الشيفرة الآتية شكل تعريف الدالة وبجوارها السلسلة النصية المُعادة من استدعاء الدالة Function.prototype.toString:

function f(){}      //"function f(){}"
class A { a(){} }   // "class A { a(){} }"
function* g(){}     // "function* g(){}"

a => a              // "a => a"

({ a(){} }.a)       // "a(){}"
({ *a(){} }.a)      // "*a(){}"
({ [0](){} }[0])    // "[0](){}"


Object.getOwnPropertyDescriptor({
    get a(){}
}, "a").get                      // "get a(){}"

Object.getOwnPropertyDescriptor({
    set a(x){}
}, "a").set                      // "set a(x){}"


Function.prototype.toString      // "function toString() { [native code] }"
(function f(){}.bind(0))         // "function () { [native code] }"

Function("a", "b")               // "function anonymous(a\n) {\nb\n}"

دعم المتصفحات

الميزة Chrome Firefox Internet Explorer Opera Safari
الدعم الأساسي نعم نعم نعم نعم نعم

مصادر ومواصفات