bird name ملكية عامة. ويعتبر الجمهور لأنه يمكن الوصول إليها وتغييرها خارج تعريف bird . bird.name = "Duffy" ؛لذلك ، يمكن لأي جزء من التعليمات البرمجية بسهولة تغيير اسم
bird إلى أي قيمة. فكر في أشياء مثل كلمات المرور والحسابات المصرفية التي يمكن تغييرها بسهولة عن طريق أي جزء من تعليمات البرمجة لديك. يمكن أن يسبب الكثير من القضايا. إن أبسط طريقة لجعل الخصائص خاصة هي عن طريق إنشاء متغير داخل دالة المنشئ. هذا يغير نطاق هذا المتغير ليكون داخل دالة المنشئ مقابل المتاحة عالمياً. بهذه الطريقة ، يمكن الوصول إلى الخاصية وتغييرها فقط بالطرق داخل دالة المنشئ أيضًا. وظيفة الطيور () {هنا ، يعد
واسمحوا hatchedEgg = 10 ؛ // ملكية خاصة
this.getHatchedEggCount = function () {/ / / يمكن للجمهور أن يستخدم طريقة الطيور
العودة مع الفقس.
}؛
}
دع الحبيب = طائر جديد () ؛
ducky.getHatchedEggCount ()؛ // returns 10
getHachedEggCount طريقة مميزة ، لأنه يمتلك إمكانية الوصول إلى المتغير hatchedEgg . هذا ممكن لأنه يتم الإعلان عن hatchedEgg في نفس السياق مثل getHachedEggCount . في جافا سكريبت ، يمكن لأي وظيفة دائمًا الوصول إلى السياق الذي تم إنشاؤه فيه. وهذا ما يسمى closure . weight في وظيفة Bird لذا فهو متغير خاص. ثم قم بإنشاء أسلوب getWeight بإرجاع قيمة weight . weight متغيرًا خاصًا.
testString: 'assert(!code.match(/this\.weight/g), "The weight property should be a private variable.");'
- text: يجب أن تقوم التعليمات البرمجية بإنشاء طريقة في Bird تسمى getWeight تقوم بإرجاع weight .
testString: 'assert((new Bird()).getWeight() === 15, "Your code should create a method in Bird called getWeight that returns the weight.");'
```