وراثة فئة جافا سكريبت
الكاتب:Eve Cole
وقت التحديث:2009-06-11 16:23:07
1. الطريقة الأولى هي التظاهر بأنه كائن (باستخدام أن كل اسم أسلوب في js هو كائن دالة) كود Java function Parent(username){.
this.username = username;
this.say = function(){
تنبيه (هذا. اسم المستخدم)؛
}
}
وظيفة الطفل (اسم المستخدم، كلمة المرور) {
this.temp = Parent;// يشير temp إلى حيث يشير Parent. كل اسم أسلوب في js هو كائن دالة يشير إلى طريقة ما.
this.temp(username);// حذف المحتوى الموجود في طريقة التهيئة this.temp;//temp لم يعد مفيدًا. يمكنك حذفه مباشرة. لا يمكن فقدانه //Parent(username);// قد تبدو الكتابة بهذه الطريقة صحيحة ظاهريًا، ولكنها في الواقع خاطئة. نظرًا لأن الكائنات التي تأتي من الجديد فقط هي التي تمتلك هذا، فلا توجد قيمة عند استدعاء هذا في الأصل this.password = كلمة المرور؛
هذا.مرحبا = وظيفة(){
تنبيه (هذا. كلمة المرور)؛
}
}
varparent = new Parent("zhangsan");
parent.say();//zhangsan
var Child = new Child("lisi"،"123456");
Child.say();//lisi
Child.hello();//123456
// الطريقة الأولى هي التظاهر بأنه كائن (باستخدام كل اسم أسلوب في js هو كائن دالة).
وظيفة الأصل (اسم المستخدم) {
this.username = username;
this.say = function(){
تنبيه (هذا. اسم المستخدم)؛
}
}
وظيفة الطفل (اسم المستخدم، كلمة المرور) {
this.temp = Parent;// يشير temp إلى حيث يشير Parent. كل اسم أسلوب في js هو كائن دالة يشير إلى طريقة ما.
this.temp(username);// حذف المحتوى الموجود في طريقة التهيئة this.temp;//temp لم يعد مفيدًا. يمكنك حذفه مباشرة. لا يمكن فقدانه //Parent(username);// قد تبدو الكتابة بهذه الطريقة صحيحة ظاهريًا، ولكنها في الواقع خاطئة. نظرًا لأن الكائنات التي تأتي من الجديد فقط هي التي تمتلك هذا، فلا توجد قيمة عند استدعاء هذا في الأصل this.password = كلمة المرور؛
هذا.مرحبا = وظيفة(){
تنبيه (هذا. كلمة المرور)؛
}
}
varparent = new Parent("zhangsan");
parent.say();//zhangsan
var Child = new Child("lisi"،"123456");
Child.say();//lisi
Child.hello();//123456
2. الطريقة الثانية: طريقة وظيفة call () وظيفة call () هي وظيفة لكائن الوظيفة. الاستخدام المحدد هو كما يلي رمز Java // وظيفة call () هي وظيفة كائن الوظيفة // المحدد الاستخدام مثل اختبار الوظيفة(str){
تنبيه (this.username + "،" + str)؛
}
var o = new Object();
o.username = "zhangsan";
test.call(o,"123456");//zhangsan,123456. لأن كل كائن دالة له طريقة call()، واسم الوظيفة هو كائن دالة. المعلمة الأولى لوظيفة call() هي وظيفة الاختبار هذا في.
// وظيفة call () هي وظيفة كائن الوظيفة // الاستخدام المحدد مثل اختبار الوظيفة (str) {
تنبيه (this.username + "،" + str)؛
}
var o = new Object();
o.username = "zhangsan";
test.call(o,"123456");//zhangsan,123456. لأن كل كائن دالة له طريقة call()، واسم الوظيفة هو كائن دالة. المعلمة الأولى لوظيفة call() هي وظيفة الاختبار هذا في.
وظيفة كود جافا الأصل (اسم المستخدم) {
this.username = username;
this.say = function(){
تنبيه (هذا. اسم المستخدم)؛
}
}
وظيفة الطفل (اسم المستخدم، كلمة المرور) {
Parent.call(this,username);
this.password = كلمة المرور؛
هذا.مرحبا = وظيفة(){
تنبيه (هذا. كلمة المرور)؛
}
}
varparent = new Parent("zhangsan");
parent.say();//zhangsan
var Child = new Child("lisi"،"123456");
Child.say();//lisi
Child.hello();//123456
وظيفة الأصل (اسم المستخدم) {
this.username = username;
this.say = function(){
تنبيه (هذا. اسم المستخدم)؛
}
}
وظيفة الطفل (اسم المستخدم، كلمة المرور) {
Parent.call(this,username);
this.password = كلمة المرور؛
هذا.مرحبا = وظيفة(){
تنبيه (هذا. كلمة المرور)؛
}
}
varparent = new Parent("zhangsan");
parent.say();//zhangsan
var Child = new Child("lisi"،"123456");
Child.say();//lisi
Child.hello();//123456
3. طريقة التنفيذ الثالثة: طريقة دالة application() application() وcall() متماثلتان، باستثناء أن معلمات التطبيق هي رموز Java المصفوفية // طريقة التنفيذ الثالثة: application() function الطريقة والتطبيق () والاتصال () متماثلان، باستثناء أن معلمات التطبيق يتم تمريرها بشكل مختلف
this.username = username;
this.say = function(){
تنبيه (هذا. اسم المستخدم)؛
}
}
وظيفة الطفل (اسم المستخدم، كلمة المرور) {
Parent.apply(this,new Array(username));
this.password = كلمة المرور؛
هذا.مرحبا = وظيفة(){
تنبيه (هذا. كلمة المرور)؛
}
}
varparent = new Parent("zhangsan");
parent.say();//zhangsan
var Child = new Child("lisi"،"123456");
Child.say();//lisi
Child.hello();//123456