اذهب إلى المحتوى
  • 0

Object الكائن

السؤال

نشر

السلام عليكم وحمة الله وبركاته 

لماذا تظهر رسالة الخطأ التالية ما السبب ؟ 

// Object
let user = {
    //Properties
    theName: "Yehia",
    theAge: 26,
    //methods
    sayHello: function() {
        return `Hello`,
    };

};
//Accessing Object
console.log(user.theName);
console.log(user.theAge);
console.log(user.sayHello());
VM61:9 Uncaught SyntaxError: Unexpected token '}' (at VM61:9:5)

 

Recommended Posts

  • 0
نشر

الخطا يظهر بسبب استخدام الفاصلة المنقوطة بعد نهاية الدالة sayHello داخل تعريف Object، والقاعدة في لغة جافاسكريبت هي اننا نفصل بين الخصائص والدوال داخل الكائن باستخدام الفاصلة العادية فقط ولا نستخدم الفاصلة المنقوطة ابدا هناك. ايضا لديك فاصلة زائدة داخل جملة return بعد كلمة Hello والافضل استبدالها بفاصلة منقوطة لانها نهاية سطر برمجي داخل الدالة.
يمكنك تجربة الكود بهذا الشكل.

let user = {

    theName: "Yehia",

    theAge: 26,

    sayHello: function() {

        return `Hello`;

    }

};



console.log(user.theName);

console.log(user.theAge);

console.log(user.sayHello());
  • 0
نشر

وضعت فاصلة عادية , بعد جملة return والتي تعني في جافاسكريبت معامل ربط وتجعل المحرك يتوقع وجود قيمة أخرى بعدها، لكنه وجد مباشرة قوس الإغلاق }، لذلك ظهر الخطأ:

Uncaught SyntaxError: Unexpected token '}'

لننهي الجملة في البرمجة نستخدم الفاصلة المنقوطة ;  وعندها يتفهم مفسر أو مترجم اللغة أن جملة انتهت وجملة جديدة بدأت.

أيضاً في الكائن نستخدم الفاصلة , للفصل بين الخصائص وليس الفاصلة المنقوطة، حيث كتبت:

sayHello: function() {
   
}; //هنا

أو لا نضع شيئاً إذا كانت العنصر الأخير.

وللعلم في الإصدار ES6 من جافاسكريبت، نستطيع حالياً كتابة الميثود مباشرةً كالتالي:

let user = {
    theName: "Yehia",
    theAge: 26,
    sayHello() {
        return `Hello`;
    }
};

تكتب اسم الدالة متبوعاً بالأقواس مباشرة دون الحاجة لكلمة function أو النقطتين :

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...