نسخة الكود كما يلي:
var json = {
Jarray: [] ،
jpush: function (c) {
this.jarray.push (c) ؛
}
}
var test = ["123" ، "~" ، "456"] ؛
استخدم foreach المقدمة من ES5 لحلق المثال ، وإضافتها إلى Jarray في JSON ؛
نسخة الكود كما يلي:
test.foreach (json.jpush) ؛
سيتم الإبلاغ عن خطأ في هذا الوقت:
سبب هذا الخطأ هو أن هذا في طريقة json.jpush لا يشير إلى كائن JSON ، ولكن إلى النافذة. الحل لهذه المشكلة هو العثور على الشخص المناسب لهذا الغرض.
لحسن الحظ ، يوفر Foreach () معلمة خصيصًا لتحديد الكائنات. انظر الرمز.
نسخة الكود كما يلي:
test.foreach (json.jpush ، json) ؛
ALERT (JSON.JARRAY) ؛ // النتيجة طبيعية ، 123 ~ 456
هناك طريقة أخرى:
نسخة الكود كما يلي:
test.foreach (وظيفة (ج) {
json.jpush (c) ؛
}) ؛
ALERT (JSON.JARRAY) ؛ // 123 ~ 456
يمكنك أيضًا استخدام BIND BIND
نسخة الكود كما يلي:
test.foreach (json.jpush.bind (json)) ؛
ALERT (JSON.JARRAY) ؛
يقوم Bind بإنشاء وظيفة جديدة بدلاً من تعديل وظيفة. إن سلوك الوظيفة الجديدة هو نفس الوظيفة الأصلية ، لكن جهاز الاستقبال الخاص به هو الكائن الذي نقدمه ، في حين يظل جهاز استقبال الوظيفة الأصلية دون تغيير.
هذا يعني أن استخدام طريقة الربط آمن للغاية ، لأنه عندما تتم مشاركة وظيفة أو طريقة ، فلا داعي للقلق من عدم تعديل الطريقة المشتركة.