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
.");'
```