online - javascript شرح




كيفية الحصول على شريحة من "الحجج" (4)

من here :

يجب عدم تقسيم على الحجج لأنه يمنع تحسينات في محركات JavaScript (V8 على سبيل المثال). بدلاً من ذلك ، حاول إنشاء صفيف جديد عن طريق التكرار خلال كائن الوسائط.

إذن ، إجابة بول روزيانا أعلاه صحيحة

كل ما تعرفه هو أن arguments هي كائن خاص يحتفظ بكل الحجج التي تم تمريرها إلى الدالة.

وطالما أنه ليس مصفوفة - لا يمكنك استخدام شيء مثل arguments.slice(1) .

لذا فإن السؤال - كيفية تقسيم كل شيء ولكن العنصر الأول من arguments ؟

UPD :

يبدو أنه لا توجد وسيلة دون تحويله إلى مصفوفة مع

var args = Array.prototype.slice.call(arguments);

إذا قام شخص ما بنشر حل آخر ، فسيكون ذلك رائعًا ، إذا لم يكن كذلك - فسوف أتحقق من السؤال الأول مع السطر أعلاه كإجابة.


هذا يمكن أن يكون وسيلة:

var args = Array.from(arguments).slice(1);

يمكنك استخدام الطريقة [].slice.call(arguments, 1)

[] سوف يعيدك .slice كائن وظيفة الشريحة ويمكنك أن تسميها كوسائط و 1 هي المعلمات


التدخل مع وظائف مجموعة ليست ضرورية في الواقع.

باستخدام بناء جملة المعلمة بقية ...rest أنظف وأكثر ملاءمة.

مثال

function argumentTest(first, ...rest) {
  console.log("First arg:" + first);

  // loop through the rest of the parameters
    for(let arg of rest){
        console.log("- " + arg);
    }
}

// call your function with any number of arguments
argumentTest("first arg", "#2", "more arguments", "this is not an argument but a contradiction");

...راحة





javascript