JavaScript ਵਿੱਚ 𝗙𝗮𝗰𝘁𝗼𝗿𝘆 𝗙𝘂𝗻𝗰𝘁𝗶𝗼𝗻𝘀 ਅਤੇ 𝗖𝗼𝗻𝘀𝘁𝗿𝘂𝗰𝘁𝗼𝗿 𝗙𝘂𝗻𝗰𝘁𝗶𝗼𝗻𝘀

ਇੱਕ-ਇੱਕ ਕਰਕੇ objects ਬਣਾਉਣਾ ਇੱਕ ਗਲਤੀ ਹੈ।

ਜੇਕਰ ਤੁਸੀਂ ਹਰ user ਜਾਂ classmate ਲਈ ਮੈਨੂਅਲੀ (manually) ਇੱਕ object ਲਿਖਦੇ ਹੋ, ਤਾਂ ਤੁਸੀਂ ਕੋਡ ਨੂੰ ਵਾਰ-ਵਾਰ ਦੁਹਰਾਉਂਦੇ ਹੋ। ਜੇਕਰ ਤੁਹਾਡੇ ਕੋਲ 100 users ਹਨ, ਤਾਂ ਤੁਸੀਂ ਇੱਕੋ logic ਨੂੰ 100 ਵਾਰ ਲਿਖਦੇ ਹੋ। ਇਸ ਨਾਲ bugs ਆ ਸਕਦੇ ਹਨ। ਤੁਸੀਂ ਅਚਾਨਕ ਬਾਅਦ ਵਿੱਚ ਕਿਸੇ property ਨੂੰ ਬਦਲ ਸਕਦੇ ਹੋ ਅਤੇ ਆਪਣੀ application ਨੂੰ ਖਰਾਬ ਕਰ ਸਕਦੇ ਹੋ।

ਸਾਫ਼ ਕੋਡ ਲਿਖਣ ਲਈ ਇਸ ਦੀ ਬਜਾਏ ਇਹਨਾਂ ਦੋਵਾਂ patterns ਦੀ ਵਰਤੋਂ ਕਰੋ।

  1. Factory Functions

ਇੱਕ ਅਸਲੀ ਫੈਕਟਰੀ ਬਾਰੇ ਸੋਚੋ। ਕੱਚਾ ਮਾਲ (Raw materials) ਅੰਦਰ ਜਾਂਦਾ ਹੈ। ਇੱਕ ਤਿਆਰ ਉਤਪਾਦ (finished product) ਬਾਹਰ ਆਉਂਦਾ ਹੈ।

ਇੱਕ factory function parameters ਲੈਂਦਾ ਹੈ ਅਤੇ ਇੱਕ ਨਵਾਂ object return ਕਰਦਾ ਹੈ।

Example:

function classFactory(name) {
    return {
        reply() {
            return `${name} is present`
        }
    }
}

ਫਾਇਦੇ:

  1. Constructor Functions

Constructor functions ਵੀ objects ਬਣਾਉਂਦੇ ਹਨ। ਉਹ "new" keyword ਅਤੇ "this" keyword ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ। ਰਵਾਇਤ (convention) ਅਨੁਸਾਰ, ਤੁਸੀਂ ਇਹਨਾਂ ਦੀ ਸ਼ੁਰੂਆਤ ਵੱਡੇ ਅੱਖਰ (capital letter) ਨਾਲ ਕਰਦੇ ਹੋ।

Example:

function Classmate(name) {
    this.name = name
    this.reply = function() {
        return `${this.name} is present`
    }
}

ਜਦੋਂ ਤੁਸੀਂ "new" ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋ, ਤਾਂ JavaScript ਤੁਹਾਡੇ ਲਈ ਕੰਮ ਕਰਦੀ ਹੈ:

ਤੁਹਾਨੂੰ "return" statement ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ।

ਆਪਣੇ ਕੋਡ ਨੂੰ scale ਕਰਨਾ

ਤੁਸੀਂ ਵੱਡੀ ਮਾਤਰਾ ਵਿੱਚ ਡਾਟਾ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਇਹਨਾਂ patterns ਨੂੰ arrays ਦੇ ਨਾਲ ਜੋੜ ਸਕਦੇ ਹੋ। ਹਰ ਨਾਮ ਟਾਈਪ ਕਰਨ ਦੀ ਬਜਾਏ, map function ਦੀ ਵਰਤੋਂ ਕਰੋ।

Example:

const names = ['Kali', 'Andrew', 'Pearl', 'Percy']
const classmates = names.map(name => new Classmate(name))

ਹੁਣ ਤੁਹਾਡੇ ਕੋਲ ਵਰਤਣ ਲਈ objects ਦੀ ਇੱਕ ਲਿਸਟ ਤਿਆਰ ਹੈ।

Summary:

Source: https://dev.to/pearlodi/factory-functions-and-constructor-functions-in-javascript-lmb