خطأ مرجعي لخاصية كائن JavaScript
-
27-09-2019 - |
سؤال
لقد قمت ببناء كائن في JavaScript على محرك Google Apps Script وفي كل مرة أقوم بتشغيل البرنامج النصي الخاص بي ، أحصل على خطأ مرجعي يقول Uname لم يتم تعريفه.
هنا هو الرمز المتوحش:
function DataSet()
{
this.uName = "";
this.dField = "";
this.qUrl = "http://api.bfbcs.com/api/pc?players="+uName+"&fields="+dFeilds;
this.data = "";
this.dQuery = dQuery;
this.execQuery = execQuery;
وفقًا لجميع المصادر التي وجدتها ، يجب ألا أحتاج إلى استخدام الكلمة الرئيسية VAR ، وعندما أقوم بتضمين ذلك ، فإنه يرمي أخطاء أخرى.
ماذا يمكن أن يحدث؟
شكرًا
المحلول
حسنًا ، نعم ، المتغير uName
ليس محدد ، في المقتطف الذي نشرته. لا dQuery
أو execQuery
, ، أو dFeilds
(الإملائية!). هل يأتون من رمز آخر لم تظهر لنا؟
هناك منشأه this.uName
, ، لكن خصائص الكائنات هي شيء مختلف تمامًا للمتغيرات في JavaScript. على عكس Java ، فإنهم لا يشاركون مساحة الاسم.
أيضا ، تحتاج إلى معلمات url-encode. على سبيل المثال:
this.qUrl = "http://api.bfbcs.com/api/pc?players="+encodeURIComponent(this.uName)+"&fields="+encodeURIComponent(this.dField);
نصائح أخرى
لست متأكدًا مما تحاول القيام به ولكني لا أرى وظيفتك تتلقى تلك المعلمات:
function DataSet(uName,dFeilds,dQuery,execQuery)
{
this.uName = "";
this.dFeild = "";
this.qUrl = "http://api.bfbcs.com/api/pc?players="+uName+"&fields="+dFeilds;
this.data = "";
this.dQuery = dQuery;
this.execQuery = execQuery;