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

استخدام OOP ضمن كود node.js

Tamim Fahed

السؤال

أحاول تطبيق OOP - Object Oriented Programming ضمن كود المشروع في node.js، ولكن هل يجب أن تتم تجزأة جميع الصفوف ضمن module.export ؟

وحاولت إنشاء الصفوف بالشكل التالي:

this.Class = function() {
    var name = ""
    this.username = ""
    var getName = function() {}
    this.getName = function() {} 
}

لكن واجهت العديد من الأخطاء بهذه المنهجية. فما هي الطريقة الصحيحة لإنشاء الصفوف واتباع OOP ضمن node.js؟ وهل هي مدعومة بشكل تلقائي ضمن node.js ؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

يمكنك استخدام oop في node.js كالتالي, لنفترض لدينا الصنف Person

var method = Person.prototype;

function Person(name) {
    this._name = name;
}

method.getName = function() {
    return this._name;
};

module.exports = Person;

لاستخدامه في ملف آخر

var person = require("./person.js");

var Mohammed = new Person('Mohammed');

اذا كنت تريد تطبيق خاصية الوراثة يمكنك فعل التالي

var _super = require("./person.js").prototype,
    method = Student.prototype = Object.create( _super );

method.constructor = Student;

function Student() {
    _super.constructor.apply( this, arguments );
}

method.getName = function() {
    return _super.getName.call(this);
};

module.exports = Student;

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

لإنشاء أصناف classes في JavaScript فيجب عليك كما في بقية اللغات المشهورة إستخدام الكلمة المحجوزة class كالآتي

// إنشاء الصنف
class Player{
  constructor(name, age){
    this.name = name;
    this.age = age
  }
}

// إنشاء نسخة من الصنف
let p = new Player('Ali', 14)

اما كيفية الإستيراد والتصدير في NodeJS فلديك طريقتين إما عبر CommonJS بإستخدام module.export كالآتي

// من ملف Player.js
// إنشاء الصنف
class Player{
  constructor(name, age){
    this.name = name;
    this.age = age
  }
}

module.exports = Player;

// من ملف آخر
const Player = require('./Player')

أو بإستخدام الطريقة الجديدة ل ES6 عبر إستخدام export و import كالآتي

// ملف Player.js
// إنشاء الصنف
export default class Player{
  constructor(name, age){
    this.name = name;
    this.age = age
  }
}

// ملف آخر
import Player from './Player.mjs'

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...