ÙÙÙØ´Ùئ اÙÙØ§Ø¦Ùات باستخداÙ
Ø§ÙØµÙغة Ø§ÙØ§Ø¹ØªÙØ§Ø¯ÙØ© اÙÙ
ختصرة {...}. ÙÙÙÙØ§ ÙØØªØ§Ø¬ ÙØ¥Ùشاء Ø§ÙØ¹Ø¯Ùد Ù
٠اÙÙØ§Ø¦Ùات اÙÙ
ØªØ´Ø§Ø¨ÙØ© ØºØ§ÙØ¨ÙØ§Ø Ù
Ø«Ù Ø§ÙØ¹Ø¯Ùد Ù
Ù
اÙÙ
ستخدÙ
ÙÙØ Ø£Ù Ø¹ÙØ§ØµØ± ÙÙØ§Ø¦Ù
Ø© ÙÙÙØ°Ø§. ÙÙ
Ù٠اÙÙÙØ§Ù
بذÙ٠باستخداÙ
Ø§ÙØ¯ÙØ§Ù Ø§ÙØ¨Ø§ÙÙØ© (constructor functions) ÙÙØ§Ø¦Ù ÙØ§ÙÙ
ÙØ¹Ø§Ù
ÙÙ
"new".
Ø§ÙØ¯Ø§ÙØ© Ø§ÙØ¨Ø§ÙÙØ©
تÙÙÙÙØ§Ø Ø§ÙØ¯ÙØ§Ù Ø§ÙØ¨Ø§ÙÙØ© ÙÙ Ø¯ÙØ§Ù Ø¹Ø§Ø¯ÙØ©Ø ÙÙÙ ÙÙØ¬Ø¯ ÙÙØ±ØªÙ٠٠تÙ٠عÙÙÙØ§:
- Ø£ÙÙØ§ تبدأ Ø¨Ø£ØØ±Ù ÙØ¨Ùرة.
- ÙØ¬Ø¨ تÙÙÙØ°Ùا Ù
ع اÙÙ
ÙØ¹Ø§Ù
ÙÙ
"new"ÙÙØ·. Ø¥ÙÙ٠اÙÙ Ø«Ø§Ù Ø§ÙØªØ§ÙÙ:
function User(name) {
this.name = name;
this.isAdmin = false;
}
let user = new User("Jack");
alert(user.name); // Jack
alert(user.isAdmin); // false
Ø¹ÙØ¯ تÙÙÙØ° Ø¯Ø§ÙØ© Ù
ع اÙÙØ¹Ø§Ù
ÙÙ newØ ØªÙÙÙÙÙÙØ° Ø§ÙØ®Ø·Ùات Ø§ÙØªØ§ÙÙØ©:
- ÙÙÙØ´ÙØ£ ÙØ§Ø¦Ù ÙØ§Ø±Øº ÙÙÙØ³ÙÙØ¯ Ø¥ÙÙ
this. - ÙÙÙÙÙÙÙØ° Ù
ØØªÙÙ Ø§ÙØ¯Ø§ÙØ©. تÙÙÙ
ØºØ§ÙØ¨Ùا بتعدÙÙ
thisØ ÙØ¥Ø¶Ø§ÙØ© Ø®Ø§ØµÙØ§Øª Ø¥ÙÙÙ. - ØªÙØ±Ø¬Ùع ÙÙÙ
Ø©
this. ب٠عÙÙ Ø¢Ø®Ø±Ø ØªÙÙÙnew User(...)âØ¨Ø´ÙØ¡ ÙØ´Ø¨Ù ٠ا ÙÙÙ:
function User(name) {
// this = {}; (implicitly)
// this Ø¥Ø¶Ø§ÙØ© Ø®Ø§ØµÙØ§Øª Ø¥ÙÙ
this.name = name;
this.isAdmin = false;
// this; (implicitly) إرجاع
}
Ø¥Ø°ÙØ§Ø ØªÙØ¹Ø·Ù let user = new User("Jack")â Ø§ÙÙØªÙجة Ø§ÙØªØ§ÙÙØ© Ø°Ø§ØªÙØ§:
let user = {
name: "Jack",
isAdmin: false
};
Ø§ÙØ¢ÙØ Ø¥Ù Ø£Ø±Ø¯ÙØ§ Ø¥ÙØ´Ø§Ø¡ Ù
ستخدÙ
Ù٠آخرÙÙØ ÙÙ
ÙÙÙØ§ استدعاء new User("Ann")âØ Ù new User("Aliceâ")â ÙÙÙØ°Ø§. تعدÙÙ ÙØ°Ù
Ø§ÙØ·Ø±ÙÙØ© ÙÙ Ø¨ÙØ§Ø¡ اÙÙØ§Ø¦Ùات Ø£ÙØµØ± Ù
Ù Ø§ÙØ·Ø±ÙÙØ© Ø§ÙØ§Ø¹ØªÙØ§Ø¯ÙØ© عبر Ø§ÙØ£ÙÙØ§Ø³ ÙÙØ·Ø ÙØ£ÙØ¶ÙØ§ أسÙÙ ÙÙÙØ±Ø§Ø¡Ø©. ÙØ°Ø§ ÙÙ Ø§ÙØºØ±Ø¶ Ø§ÙØ±Ø¦Ùس ÙÙØ¨Ø§ÙÙØ§ØªØ
ÙÙ٠تطبÙÙ Ø´ÙÙØ±Ø© ÙØ§Ø¨ÙØ© ÙØ¥Ø¹Ø§Ø¯Ø© Ø§ÙØ§Ø³ØªØ®Ø¯Ø§Ù
ÙØ¥Ùشاء اÙÙØ§Ø¦Ùات.
ÙØ§ØØ¸ Ø£ÙÙÙÙ ÙÙ
Ù٠استخداÙ
Ø£Ù Ø¯Ø§ÙØ© ÙØªÙÙÙ Ø¯Ø§ÙØ© باÙÙØ© تÙÙÙÙØ§. ÙØ¹Ù٠أÙÙ ÙÙ
Ù٠تÙÙÙØ° Ø£Ù Ø¯Ø§ÙØ© Ù
ع newØ ÙØ³ØªÙÙÙÙÙÙØ° باستخداÙ
Ø§ÙØ®ÙارزÙ
ÙØ© Ø£Ø¹ÙØ§Ù.
استخداÙ
Ø§ÙØ£ØØ±Ù اÙÙØ¨Ùرة ÙÙ Ø§ÙØ¨Ø¯Ø§ÙØ© ÙÙ Ø§ØªÙØ§Ù شائع ÙØªÙ
ÙÙØ² Ø§ÙØ¯Ø§ÙØ© Ø§ÙØ¨Ø§ÙÙØ© Ù
Ù ØºÙØ±Ùا ÙØ£ÙÙÙÙ ÙØ¬Ø¨ Ø§Ø³ØªØ¯Ø¹Ø§Ø¤ÙØ§ Ù
ع new.
**new function() { ⦠}â**
Ø¥Ù ÙØ§Ù ÙØ¯ÙÙØ§ Ø§ÙØ¹Ø¯Ùد Ù Ù Ø§ÙØ£Ø³Ø·Ø± Ø§ÙØ¨Ø±Ù Ø¬ÙØ©Ø ÙØ¬Ù ÙØ¹Ùا Ø¹Ù Ø¥ÙØ´Ø§Ø¡ ÙØ§Ø¦Ù ÙØ§ØØ¯ Ù ÙØ¹ÙÙÙÙØ¯Ø ÙØ¨Ø¥Ù ÙØ§ÙÙØ§ تض٠ÙÙÙØ§ ÙÙ Ø¯Ø§ÙØ© باÙÙØ©Ø ÙÙØ°Ø§:
let user = new function() {
this.name = "John";
this.isAdmin = false;
// ...Ø´ÙÙØ±Ø© إضاÙÙØ© ÙØ¥Ùشاء Ù
ستخدÙ
// ربÙ
ا Ù
ÙØ·Ù Ù
Ø¹ÙØ¯ أ٠أ٠جÙ
Ù
// Ù
ØªØºÙØ±Ø§Øª Ù
ØÙÙØ© ÙÙÙØ°Ø§..
};
ÙØ§ ÙÙ Ù٠استدعاء اÙÙ ÙÙØ´Ùئ Ù Ø¬Ø¯Ø¯ÙØ§Ø ÙØ£ÙÙ ØºÙØ± Ù ØÙÙØ¸ ÙÙ Ø£Ù Ù ÙØ§ÙØ ÙÙÙØ´ÙØ£ ÙÙÙØ³ØªØ¯Ø¹Ù ÙÙØ·. ÙØ°Ø§ ÙØ¥Ù Ø§ÙØ®Ø¯Ø¹Ø© ØªÙØ¯Ù Ø¥Ù٠تض٠ÙÙ Ø§ÙØ´ÙÙØ±Ø© Ø§ÙØªÙ تÙÙØ´Ùئ ÙØ§Ø¦ÙÙØ§ ÙØ§ØØ¯ÙØ§Ø Ø¯Ù٠إعادة Ø§ÙØ§Ø³ØªØ®Ø¯Ø§Ù ÙØªÙرار Ø§ÙØ¹Ù ÙÙØ© Ù Ø³ØªÙØ¨ÙÙØ§.
ÙØ¶Ø¹ اختبار Ø§ÙØ¨Ø§ÙÙ: new.target
Ù
ÙØ²Ø© Ù
ØªÙØ¯Ù
Ø©: ØªÙØ³ØªØ®Ø¯Ù
Ø§ÙØµÙغة ÙÙ ÙØ°Ø§ Ø§ÙØ¬Ø²Ø¡ ÙØ§Ø¯Ø±ÙØ§Ø ÙÙÙ
ÙÙ٠تخطÙÙØ§ Ø¥ÙØ§ Ø¥Ù ÙÙØª ØªÙØ±Ùد Ø§ÙØ¥ÙÙ
اÙ
بÙÙ Ø´ÙØ¡.
ÙÙ
ÙÙÙØ§ ÙØØµ Ù
ا Ø¥Ù ÙØ§Ùت Ø§ÙØ¯Ø§ÙØ© ÙØ¯ Ø§Ø³ØªØ¯Ø¹ÙØª باستخداÙ
new أ٠دÙÙÙ Ù
Ù Ø¯Ø§Ø®Ù Ø§ÙØ¯Ø§ÙØ©Ø ÙØ°Ù٠باستخداÙ
Ø§ÙØ®Ø§ØµÙØ© Ø§ÙØ®Ø§ØµØ© new.target.
تÙÙÙ Ø§ÙØ®Ø§ØµÙØ© ÙØ§Ø±ØºØ© ÙÙ Ø§ÙØ§Ø³ØªØ¯Ø¹Ø§Ø¡Ø§Øª Ø§ÙØ¹Ø§Ø¯ÙØ©Ø ÙØªØ³Ø§ÙÙ Ø§ÙØ¯Ø§ÙØ© Ø§ÙØ¨Ø§ÙÙØ© إذا Ø§Ø³ØªÙØ¯Ø¹ÙÙÙØª باستخداÙ
new:
Inside a function, we can check whether it was called with `new` or without it, using a special `new.target` property.
It is undefined for regular calls and equals the function if called with `new`:
```js run
function User() {
alert(new.target);
}
// "new" بدÙÙ:
User(); // undefined
// باستخداÙ
"new":
new User(); // function User { ... }
ÙÙ
Ù٠استخداÙ
ذÙÙ Ø¨Ø¯Ø§Ø®Ù Ø§ÙØ¯Ø§ÙØ© ÙÙ
Ø¹Ø±ÙØ© Ø¥Ù Ø§Ø³ØªÙØ¯Ø¹ÙÙÙØª Ù
ع newØ âÙÙ ÙØ¶Ø¹ Ø¨ÙØ§Ø¡ ÙØ§Ø¦ÙâØ Ø£Ù Ø¯ÙÙÙ âÙ٠اÙÙØ¶Ø¹ Ø§ÙØ¹Ø§Ø¯Ùâ.
ÙÙ
ÙÙÙØ§ Ø£ÙØ¶Ùا جع٠ÙÙÙØ§ Ù
Ù Ø§ÙØ§Ø³ØªØ¯Ø¹Ø§Ø¡ Ø§ÙØ¹Ø§Ø¯Ù Ùnew ÙÙÙÙÙØ°Ø§Ù Ø§ÙØ£Ù
ر ذات٠-Ø¨ÙØ§Ø¡ ÙØ§Ø¦Ù- ÙÙØ°Ø§:
function User(name) {
if (!new.target) { // new Ø¥Ù ÙÙØª تعÙ
٠بدÙÙ
return new User(name); // new ...سأضÙÙ
}
this.name = name;
}
let john = User("John"); // new User تÙÙÙØ¬ÙÙÙ Ø§ÙØ§Ø³ØªØ¯Ø¹Ø§Ø¡ Ø¥ÙÙ
alert(john.name); // John
ÙØ³ØªØ®Ø¯Ù
ÙØ°Ø§ Ø§ÙØ£Ø³ÙÙØ¨ Ù٠بعض اÙÙ
ÙØªØ¨Ø§Øª Ø£ØÙاÙÙØ§ ÙØ¬Ø¹Ù Ø§ÙØµÙغة Ø£ÙØ«Ø± Ù
رÙÙØ© ØØªÙ ÙØªÙ
ÙÙ Ø§ÙØ£Ø´Ø®Ø§Øµ Ù
٠استدعاء Ø§ÙØ¯Ø§ÙØ© Ù
ع new أ٠دÙÙÙØ ÙØªØ¸Ù تعÙ
Ù.
ربÙ
ا ÙÙØ³ Ù
Ù Ø§ÙØ¬Ùد استخداÙ
ذÙÙ ÙÙ ÙÙ Ù
ÙØ§ÙØ ÙØ£Ù ØØ°Ù new ÙØ¬Ø¹Ù Ù
ا ÙØØ¯Ø« Ø£ÙÙ ÙØ¶ÙØÙا. ÙÙÙ Ù
ع newØ ÙØ¹ÙÙ
Ø§ÙØ¬Ù
ÙØ¹ Ø£Ù ÙØ§Ø¦ÙÙØ§ Ø¬Ø¯ÙØ¯Ùا ÙØ¯ Ø£ÙÙØ´Ùئ.
٠ا ØªÙØ±Ø¬ÙØ¹Ù Ø§ÙØ¯ÙØ§Ù Ø§ÙØ¨Ø§ÙÙØ©
ÙØ§ تÙ
ÙÙ Ø§ÙØ¯ÙØ§Ù Ø§ÙØ¨Ø§ÙÙØ© Ø¹Ø§Ø¯Ø©Ù Ø§ÙØªØ¹ÙÙÙ
Ø© return. ÙÙÙ
ÙÙÙÙ
ÙØªÙÙÙØ§ ÙÙ ÙØªØ§Ø¨Ø© Ø§ÙØ£Ù
ÙØ± اÙÙ
ÙÙ
Ø© Ø¥ÙÙ thisØ ÙØªØµØ¨Ø تÙÙØ§Ø¦ÙÙØ§ Ù٠اÙÙØªÙجة. ÙÙÙ Ø¥Ù ÙØ§Ù ÙÙØ§Ù Ø§ÙØªØ¹ÙÙÙ
Ø© return ÙØ¥Ù اÙÙØ§Ø¹Ø¯Ø© سÙÙØ©:
- Ø¥Ù Ø§Ø³ØªÙØ¯Ø¹ÙÙÙØª
return٠ع ÙØ§Ø¦ÙØ ÙÙØ±Ø¬Ùع اÙÙØ§Ø¦Ù بدÙÙØ§ Ù Ùthis. - Ø¥Ù Ø§Ø³ØªÙØ¯Ø¹ÙÙÙØª
return٠ع Ù ØªØºÙØ± Ø£ÙÙÙØ ÙÙØªÙجاÙÙÙ. ب٠عÙÙ٠آخرØreturn٠ع ÙØ§Ø¦Ù ÙÙØ±Ø¬Ùع اÙÙØ§Ø¦ÙØ ÙÙÙ Ø§ÙØØ§ÙØ§Øª Ø§ÙØ£Ø®Ø±Ù ØªÙØ±Ø¬Ùعthis. Ù Ø«ÙÙØ§Ø ÙØ¹Ø§Ø¯ Ù٠اÙÙ Ø«Ø§Ù Ø§ÙØªØ§Ù٠اÙÙØ§Ø¦Ù اÙ٠رÙ٠بعدreturnÙÙÙ٠٠اÙÙØ§Ø¦Ù اÙ٠سÙÙØ¯ Ø¥ÙÙthis:
function BigUser() {
this.name = "John";
return { name: "Godzilla" }; // <-- ØªÙØ±Ø¬Ùع ÙØ°Ø§ اÙÙØ§Ø¦Ù
}
alert( new BigUser().name ); // Godzilla, ØØµÙÙØ§ عÙ٠اÙÙØ§Ø¦Ù
ÙÙÙØ§ Ù
ثا٠عÙ٠استعÙ
ا٠return ÙØ§Ø±ØºØ© (Ø£Ù ÙÙ
ÙÙÙØ§ ÙØ¶Ø¹ Ù
ØªØºÙØ± Ø£ÙÙÙ Ø¨Ø¹Ø¯ÙØ§Ø ÙØ§ ÙØ±Ù):
function SmallUser() {
this.name = "John";
return; // â this ØªÙØ±Ø¬Ùع
}
alert( new SmallUser().name ); // John
ÙØ§ ØªØØªÙÙ Ø§ÙØ¯ÙØ§Ù Ø§ÙØ¨Ø§ÙÙØ© ØºØ§ÙØ¨Ùا عÙ٠تعÙÙÙ
Ø© Ø§ÙØ¥Ø¹Ø§Ø¯Ø© return. ÙØ°Ùر ÙÙØ§ ÙØ°Ø§ Ø§ÙØªØµØ±Ù Ø§ÙØ®Ø§Øµ Ø¹ÙØ¯ إرجاع اÙÙØ§Ø¦Ùات بغرض Ø´Ù
Ù٠جÙ
ÙØ¹ اÙÙÙØ§ØÙ.
ØØ°Ù Ø§ÙØ£ÙÙØ§Ø³
باÙÙ
ÙØ§Ø³Ø¨Ø©Ø ÙÙ
ÙÙÙØ§ ØØ°Ù Ø£ÙÙØ§Ø³ new ÙÙ ØØ§Ù ØºÙØ§Ø¨ اÙÙ
عاÙ
ÙØ§Øª Ù
ÙØ¹Ø§Ù
ÙÙØ§Øª:
let user = new User; // <-- ÙØ§ ÙÙØ¬Ø¯ Ø£ÙÙØ³
// Ø§ÙØºØ±Ø¶ ذاتÙ
let user = new User();
ÙØ§ ÙÙØ¹Ø¯ ØØ°Ù Ø§ÙØ£ÙÙØ§Ø³ أسÙÙØ¨Ùا Ø¬ÙØ¯ÙØ§Ø ÙÙÙ Ø§ÙØµÙغة Ù Ø³Ù ÙØ Ø¨ÙØ§ Ù Ù Ø®ÙØ§Ù اÙÙ ÙØ§ØµÙات.
Ø§ÙØ¯Ùا٠ÙÙ Ø§ÙØ¨Ø§ÙÙ
استخداÙ
Ø§ÙØ¯ÙØ§Ù Ø§ÙØ¨Ø§ÙÙØ© ÙØ¥Ùشاء اÙÙØ§Ø¦Ùات ÙÙØ¹Ø·Ù Ù
رÙÙØ© ÙØ¨Ùرة. ÙØ¯ ØªØØªÙÙ Ø§ÙØ¯Ø§ÙØ© Ø§ÙØ¨Ø§ÙÙØ© عÙÙ Ù
ÙØ¹Ø§Ù
ÙÙØ§Øª ترشد ÙÙ Ø¨ÙØ§Ø¡ اÙÙØ§Ø¦Ù ÙÙØ¶Ø¹ÙØ Ø¥Ø° ÙÙ
ÙÙÙØ§ Ø¥Ø¶Ø§ÙØ© Ø®Ø§ØµÙØ§Øª ÙØ¯Ùا٠إÙÙ this Ø¨Ø§ÙØ·Ø¨Ø¹. Ù
Ø«ÙÙØ§Ø تÙÙØ´Ùئ new User(name)â ÙÙ Ø§ÙØ£Ø³ÙÙ ÙØ§Ø¦ÙÙØ§ Ø¨Ø§ÙØ§Ø³Ù
اÙÙ
ÙØ¹Ø·ÙÙ name ÙØ§ÙØ¯Ø§ÙØ© sayHi:
function User(name) {
this.name = name;
this.sayHi = function() {
alert( "My name is: " + this.name );
};
}
let john = new User("John");
john.sayHi(); // My name is: John
/*
john = {
name: "John",
sayHi: function() { ... }
}
*/
ÙØ¥Ùشاء ÙØ§Ø¦Ùات Ø£ÙØ«Ø± تعÙÙØ¯ÙØ§Ø ÙÙØ¬Ø¯ ØµÙØºØ© Ø£ÙØ«Ø± ØªÙØ¯Ù ÙØ§Ø اÙÙØ¦Ø§ØªØ ÙØ§ÙØªÙ Ø³ÙØºØ·ÙÙØ§ ÙØ§ØÙÙØ§.
Ø§ÙØ®Ùاصة
- Ø§ÙØ¯ÙØ§Ù Ø§ÙØ¨Ø§ÙÙØ©Ø أ٠باختصار Ø§ÙØ¨Ø§ÙÙØ§ØªØ ÙÙ Ø¯ÙØ§Ù Ø¹Ø§Ø¯ÙØ©Ø ÙÙÙ ÙÙØ¬Ø¯ Ø§ØªÙØ§Ù ٠تعار٠عÙÙ٠ببدء Ø§Ø³Ù ÙØ§ Ø¨ØØ±Ù ÙØ¨Ùر.
- ÙØ¬Ø¨ استدعاء Ø§ÙØ¯ÙØ§Ù Ø§ÙØ¨Ø§ÙÙØ© باستخداÙ
newÙÙØ·. ÙØªØ¶Ù Ù ÙØ°Ø§ Ø§ÙØ§Ø³ØªØ¯Ø¹Ø§Ø¡ Ø¥ÙØ´Ø§Ø¡ ÙØ§Ø¦Ù ÙØ§Ø±Øº ÙØ¥Ø³Ùاد٠إÙÙthisÙØ¨Ø¯Ø¡ Ø§ÙØ¹Ù ÙÙØ© ث٠إرجاع ÙØ°Ø§ اÙÙØ§Ø¦Ù ÙÙ ÙÙØ§ÙØ© اÙ٠طاÙ. - ÙÙ ÙÙÙØ§ Ø§Ø³ØªØ®Ø¯Ø§Ù Ø§ÙØ¯ÙØ§Ù Ø§ÙØ¨Ø§ÙÙØ© ÙØ¥Ùشاء ÙØ§Ø¦Ùات ٠تعددة Ù ØªØ´Ø§Ø¨ÙØ©.
- ØªØ²ÙØ¯ JavaScript Ø¯ÙØ§ÙÙØ§ باÙÙØ© ÙÙØ¹Ø¯Ùد Ù
Ù Ø§ÙØ£ÙÙØ§Ø¹ (اÙÙØ§Ø¦Ùات) اÙÙ
دÙ
جة Ù٠اÙÙØºØ©: Ù
ث٠اÙÙÙØ¹
DateÙÙØªÙØ§Ø±ÙØ®Ø ÙSetÙÙÙ Ø¬Ù ÙØ¹Ø§Øª ÙØºÙØ±ÙØ§ ٠٠اÙÙØ§Ø¦Ùات Ø§ÙØªÙ ÙØ®Ø·Ø· ÙØ¯Ø±Ø§Ø³ØªÙا.
Ø¹ÙØ¯Ø© ÙØ±Ùبة
غطÙÙØ§ Ø§ÙØ£Ø³Ø§Ø³Ùات ÙÙØ· ع٠اÙÙØ§Ø¦Ùات ÙØ¨Ø§ÙÙØ§ØªÙا ÙÙ ÙØ°Ø§ اÙÙØµÙ. ÙØ°Ù Ø§ÙØ£Ø³Ø§Ø³Ùات Ù ÙÙ Ø© ت٠ÙÙØ¯Ùا ÙØªØ¹Ù٠اÙÙ Ø²ÙØ¯ ع٠أÙÙØ§Ø¹ Ø§ÙØ¨ÙØ§ÙØ§Øª ÙØ§ÙØ¯ÙØ§Ù Ù٠اÙÙØµÙ Ø§ÙØªØ§ÙÙ. بعد تعÙ٠ذÙÙØ Ø³ÙØ¹Ùد ÙÙÙØ§Ø¦Ùات ÙÙØºØ·ÙÙØ§ بع٠٠ÙÙ ÙØµÙ Ø§ÙØ®ØµØ§Ø¦ØµØ ÙØ§ÙÙØ±Ø§Ø«Ø©Ø ÙØ§ÙØ£ØµÙØ§Ù.
ت٠ارÙÙ
Ø¯Ø§ÙØªÙÙ â ÙØ§Ø¦Ù ÙØ§ØØ¯
Ø§ÙØ£ÙÙ
ÙØ©: 2
ÙÙ ÙÙ
ÙÙ Ø¥ÙØ´Ø§Ø¡ Ø§ÙØ¯Ø§ÙØ© A Ù B ÙÙØ°Ø§ new A()==new B()âØ
function A() { ... }
function B() { ... }
let a = new A;
let b = new B;
alert( a == b ); // true
Ø¥Ù ÙØ§Ù Ù
Ù
ÙÙÙØ§Ø ÙØ¶Ø ذÙ٠بÙ
ثا٠برÙ
جÙ.
Ø§ÙØÙ
ÙØ¹Ù
ÙÙ
Ù٠ذÙÙ.
Ø¥Ù ÙØ§Ù ÙÙØ§Ù Ø¯Ø§ÙØ© ØªÙØ±Ø¬Ùع ÙØ§Ø¦ÙÙØ§ ÙØ¥Ù new ØªÙØ±Ø¬Ùع٠بدÙÙØ§ Ù
Ù this. ÙØ°Ø§ ÙÙ
٠اÙÙ
Ù
ÙÙØ Ù
Ø«ÙÙØ§Ø إرجاع اÙÙØ§Ø¦Ù اÙÙ
عر٠خارجÙÙØ§ obj:
let obj = {};
function A() { return obj; }
function B() { return obj; }
alert( new A() == new B() ); // true
Ø¥ÙØ´Ø§Ø¡ ØØ§Ø³Ø¨Ø© Ø¬Ø¯ÙØ¯Ø©
Ø§ÙØ£ÙÙ
ÙØ©: 5
Ø¥ÙØ´Ùئ Ø¯Ø§ÙØ© باÙÙØ© باسÙ
Calculator ØªÙØ´Ø¦ ÙØ§Ø¦ÙÙØ§ Ø¨Ø«ÙØ§Ø« Ø¯ÙØ§Ù:
read()âØªØ·ÙØ¨ ÙÙ٠تÙ٠باستخدا٠سطر Ø§ÙØ£Ùا٠ر ÙØªØÙØ¸ÙØ§ ÙÙ Ø®Ø§ØµÙØ§Øª اÙÙØ§Ø¦Ù.sum()âØªÙØ±Ø¬Ùع Ù Ø¬Ù ÙØ¹ Ø§ÙØ®Ø§ØµÙتÙÙ.mul()âØªÙØ±Ø¬Ùع ØØ§ØµÙ ضرب Ø§ÙØ®Ø§ØµÙتÙÙ. Ù Ø«ÙÙØ§:
let calculator = new Calculator();
calculator.read();
alert( "Sum=" + calculator.sum() );
alert( "Mul=" + calculator.mul() );
Ø§ÙØÙ
function Calculator() {
this.read = function() {
this.a = +prompt('a?', 0);
this.b = +prompt('b?', 0);
};
this.sum = function() {
return this.a + this.b;
};
this.mul = function() {
return this.a * this.b;
};
}
let calculator = new Calculator();
calculator.read();
alert( "Sum=" + calculator.sum() );
alert( "Mul=" + calculator.mul() );
Ø¥ÙØ´Ø§Ø¡ ٠ج٠ÙÙØ¹
Ø§ÙØ£ÙÙ
ÙØ©: 5
Ø£ÙØ´Ùئ Ø¯Ø§ÙØ© باÙÙØ© باسÙ
Accumulator(startingValue)âØ Ø¥Ø° ÙØ¬Ø¨ Ø£Ù ÙØªØµÙ ÙØ°Ø§ اÙÙØ§Ø¦Ù بأÙÙÙÙ:
- ÙØ®Ø²Ù اÙÙÙÙ
Ø© Ø§ÙØØ§ÙÙØ© ÙÙ Ø§ÙØ®Ø§ØµÙØ©
value. ØªÙØ¹ÙÙÙÙÙ ÙÙÙ Ø© Ø§ÙØ¨Ø¯Ø¡ عبر اÙ٠عا٠ÙstartingValueاÙÙ Ø¹Ø·Ù Ù Ù Ø§ÙØ¯Ø§ÙØ© Ø§ÙØ¨Ø§ÙÙØ©. - ÙØ¬Ø¨ أ٠تستخدÙ
Ø§ÙØ¯Ø§ÙØ©
read()Ø§ÙØ¯Ø§ÙØ©promptÙÙØ±Ø§Ø¡Ø© رÙÙ Ø¬Ø¯ÙØ¯ ÙØ¥Ø¶Ø§Ùت٠إÙÙvalue. ب٠عÙÙ Ø¢Ø®Ø±Ø Ø§ÙØ®Ø§ØµÙØ©valueÙÙ Ù Ø¬Ù ÙØ¹ اÙÙÙ٠اÙÙ Ø¯Ø®ÙØ© Ø¨ÙØ§Ø³Ø·Ø© اÙÙ Ø³ØªØ®Ø¯Ù Ø¨Ø§ÙØ¥Ø¶Ø§ÙØ© Ø¥Ù٠اÙÙÙÙ Ø© Ø§ÙØ£ÙÙÙØ©startingValue. ÙÙØ§ ٠ثا٠عÙ٠٠ا ÙØ¬Ø¨ Ø£Ù ÙÙÙÙÙÙÙØ°:
let accumulator = new Accumulator(1); // اÙÙÙÙ
Ø© Ø§ÙØ£ÙÙÙØ© 1
accumulator.read(); // ÙØ¶ÙÙ ÙÙÙ
Ø© Ù
Ø¯Ø®ÙØ© Ø¨ÙØ§Ø³Ø·Ø© اÙÙ
ستخدÙ
accumulator.read(); // ÙØ¶ÙÙ ÙÙÙ
Ø© Ù
Ø¯Ø®ÙØ© Ø¨ÙØ§Ø³Ø·Ø© اÙÙ
ستخدÙ
alert(accumulator.value); // ÙØ¹Ø±Ø¶ Ù
جÙ
ÙØ¹ اÙÙÙÙ
Ø§ÙØÙ
function Accumulator(startingValue) {
this.value = startingValue;
this.read = function() {
this.value += +prompt('How much to add', 0);
};
}
let accumulator = new Accumulator(1);
accumulator.read();
accumulator.read();
alert(accumulator.value);
ترج٠ة -ÙØ¨ØªØµØ±Ù- ÙÙÙØµÙ Constructor, operator ânewâ Ù Ù ÙØªØ§Ø¨ The JavaScript Language
Ø§ÙØªØ¹ÙÙÙØ§Øª
<code>Ø ÙÙÙÙØ«Ùر Ù Ù Ø§ÙØ³Ø·Ùر استخدÙ<pre>Ø ÙÙØ£Ùثر Ù Ù 10 Ø³Ø·ÙØ± استخد٠(plnkr, JSBin, codepenâ¦)