צפיות
תשובות
למה אני לא מצליח להציג את התוצאה כאשר אני מריץ את הפקודה alert(B.test());
היי,
למה אני לא מצליח להציג את התוצאה כאשר אני מריץ את הפקודה alert(B.test()); ?
י
ש לי קוד שעובד יפה http://jsfiddle.net/centerwow/nHetS/1/
function Shape(){}
Shape.prototype.name = 'shape';
Shape.prototype.toString = function() {return this.name;};
var F = function(){};
F.prototype = Shape.prototype;
function Triangle(side, height) {
this.side = side;
this.height = height;
}
Triangle.prototype = new F();
Triangle.prototype.constructor = Triangle;
Triangle.prototype.name = 'Triangle';
var my = new Triangle(5, 10);
alert(my.toString());
אני יוצר אוביקט בשם my שנוצר מ Triangle שיורש מ F
שיורש מ Shape
ב Shape יש מטודה בשם toString ואני יכול לגשת אליה מהאוביקט שנוצר בשם
my ולהציג את השם של מחלקה 'Triangle' ע"י הפוקדה alert(my.toString());
עד כאן הכל טוב ועובד.
עכשיו שכיפלתי את הקוד אבל אם שמות שונים ואני מנסה לגשת למטודה שיצרתי ב Shape
בשם test עם אותו רעיון בדיוק.
באמצעות הפקודה הבאה alert(B.test());
וזה לא עובד.
הקוד המלא בקישור: http://jsfiddle.net/centerwow/nHetS/
function Shape(){}
Shape.prototype.name = 'shape';
Shape.prototype.toString = function() {return this.name;};
var F = function(){};
F.prototype = Shape.prototype;
F.prototype.test = function(){return 'test';};
function Triangle(side, height) {
this.side = side;
this.height = height;
}
Triangle.prototype = new F();
Triangle.prototype.constructor = Triangle;
Triangle.prototype.name = 'Triangle';
var my = new Triangle(5, 10);
alert(my.toString());
var Secend_class = function(){};
Secend_class.prototype = Shape.prototype;
B.prototype = new Secend_class();
alert(B.test());
9 תשובות
לא הגדרת את B
האם הקוד הבא לא מגדיר את B
var Secend_class = function(){};
Secend_class.prototype = Shape.prototype;
B.prototype = new Secend_class();
alert(B.test());?
זאת לא הגדרה של B. אתה כתבת פה B.prototype כאילו שB קיים ואתה מרחיב אותו.
prototype זה כדי להוסיף משתנים ופונק' לאובייקט שהגדרת כבר. תוכל לקרוא על זה פה: http://www.internet-israel.com/internet/%D7%A4%D7%99%D7%AA%D7%95%D7%97-%D7%90%D7%99%D7%A0%D7%98%D7%A8%D7%A0%D7%98/jquery-%D7%9C%D7%9E%D7%AA%D7%A7%D7%93%D7%9E%D7%99%D7%9D/javascript-prototype/
על תכנות OOP עם Javascript תוכל לקרוא פה: http://www.internet-israel.com/internet/%D7%A4%D7%99%D7%AA%D7%95%D7%97-%D7%90%D7%99%D7%A0%D7%98%D7%A8%D7%A0%D7%98/%D7%91%D7%A0%D7%99%D7%99%D7%AA-%D7%90%D7%AA%D7%A8%D7%99-%D7%90%D7%99%D7%A0%D7%98%D7%A8%D7%A0%D7%98-%D7%9C%D7%9E%D7%A4%D7%AA%D7%97%D7%99%D7%9D/javascript-%D7%9B%D7%A9%D7%A4%D7%94-%D7%9E%D7%95%D7%A0%D7%97%D7%99%D7%AA-%D7%A2%D7%A6%D7%9E%D7%99%D7%9D/
זאת לא הגדרה של B. אתה כתבת פה B.prototype כאילו שB קיים ואתה מרחיב אותו.
prototype זה כדי להוסיף משתנים ופונק' לאובייקט שהגדרת כבר. תוכל לקרוא על זה פה: http://www.internet-israel.com/internet/%D7%A4%D7%99%D7%AA%D7%95%D7%97-%D7%90%D7%99%D7%A0%D7%98%D7%A8%D7%A0%D7%98/jquery-%D7%9C%D7%9E%D7%AA%D7%A7%D7%93%D7%9E%D7%99%D7%9D/javascript-prototype/
על תכנות OOP עם Javascript תוכל לקרוא פה: http://www.internet-israel.com/internet/%D7%A4%D7%99%D7%AA%D7%95%D7%97-%D7%90%D7%99%D7%A0%D7%98%D7%A8%D7%A0%D7%98/%D7%91%D7%A0%D7%99%D7%99%D7%AA-%D7%90%D7%AA%D7%A8%D7%99-%D7%90%D7%99%D7%A0%D7%98%D7%A8%D7%A0%D7%98-%D7%9C%D7%9E%D7%A4%D7%AA%D7%97%D7%99%D7%9D/javascript-%D7%9B%D7%A9%D7%A4%D7%94-%D7%9E%D7%95%D7%A0%D7%97%D7%99%D7%AA-%D7%A2%D7%A6%D7%9E%D7%99%D7%9D/
זאת לא הגדרה של B. אתה כתבת פה B.prototype כאילו שB קיים ואתה מרחיב אותו.
prototype זה כדי להוסיף משתנים ופונק' לאובייקט שהגדרת כבר. תוכל לקרוא על זה פה: http://www.internet-israel.com/internet/%D7%A4%D7%99%D7%AA%D7%95%D7%97-%D7%90%D7%99%D7%A0%D7%98%D7%A8%D7%A0%D7%98/jquery-%D7%9C%D7%9E%D7%AA%D7%A7%D7%93%D7%9E%D7%99%D7%9D/javascript-prototype/
על תכנות OOP עם Javascript תוכל לקרוא פה: http://www.internet-israel.com/internet/%D7%A4%D7%99%D7%AA%D7%95%D7%97-%D7%90%D7%99%D7%A0%D7%98%D7%A8%D7%A0%D7%98/%D7%91%D7%A0%D7%99%D7%99%D7%AA-%D7%90%D7%AA%D7%A8%D7%99-%D7%90%D7%99%D7%A0%D7%98%D7%A8%D7%A0%D7%98-%D7%9C%D7%9E%D7%A4%D7%AA%D7%97%D7%99%D7%9D/javascript-%D7%9B%D7%A9%D7%A4%D7%94-%D7%9E%D7%95%D7%A0%D7%97%D7%99%D7%AA-%D7%A2%D7%A6%D7%9E%D7%99%D7%9D/
זאת לא הגדרה של B. אתה כתבת פה B.prototype כאילו שB קיים ואתה מרחיב אותו.
prototype זה כדי להוסיף משתנים ופונק' לאובייקט שהגדרת כבר. תוכל לקרוא על זה פה: http://www.internet-israel.com/internet/%D7%A4%D7%99%D7%AA%D7%95%D7%97-%D7%90%D7%99%D7%A0%D7%98%D7%A8%D7%A0%D7%98/jquery-%D7%9C%D7%9E%D7%AA%D7%A7%D7%93%D7%9E%D7%99%D7%9D/javascript-prototype/
על תכנות OOP עם Javascript תוכל לקרוא פה: http://www.internet-israel.com/internet/%D7%A4%D7%99%D7%AA%D7%95%D7%97-%D7%90%D7%99%D7%A0%D7%98%D7%A8%D7%A0%D7%98/%D7%91%D7%A0%D7%99%D7%99%D7%AA-%D7%90%D7%AA%D7%A8%D7%99-%D7%90%D7%99%D7%A0%D7%98%D7%A8%D7%A0%D7%98-%D7%9C%D7%9E%D7%A4%D7%AA%D7%97%D7%99%D7%9D/javascript-%D7%9B%D7%A9%D7%A4%D7%94-%D7%9E%D7%95%D7%A0%D7%97%D7%99%D7%AA-%D7%A2%D7%A6%D7%9E%D7%99%D7%9D/
זאת לא הגדרה של B. אתה כתבת פה B.prototype כאילו שB קיים ואתה מרחיב אותו.
prototype זה כדי להוסיף משתנים ופונק' לאובייקט שהגדרת כבר. תוכל לקרוא על זה פה: http://www.internet-israel.com/internet/%D7%A4%D7%99%D7%AA%D7%95%D7%97-%D7%90%D7%99%D7%A0%D7%98%D7%A8%D7%A0%D7%98/jquery-%D7%9C%D7%9E%D7%AA%D7%A7%D7%93%D7%9E%D7%99%D7%9D/javascript-prototype/
על תכנות OOP עם Javascript תוכל לקרוא פה: http://www.internet-israel.com/internet/%D7%A4%D7%99%D7%AA%D7%95%D7%97-%D7%90%D7%99%D7%A0%D7%98%D7%A8%D7%A0%D7%98/%D7%91%D7%A0%D7%99%D7%99%D7%AA-%D7%90%D7%AA%D7%A8%D7%99-%D7%90%D7%99%D7%A0%D7%98%D7%A8%D7%A0%D7%98-%D7%9C%D7%9E%D7%A4%D7%AA%D7%97%D7%99%D7%9D/javascript-%D7%9B%D7%A9%D7%A4%D7%94-%D7%9E%D7%95%D7%A0%D7%97%D7%99%D7%AA-%D7%A2%D7%A6%D7%9E%D7%99%D7%9D/
זאת לא הגדרה של B. אתה כתבת פה B.prototype כאילו שB קיים ואתה מרחיב אותו.
prototype זה כדי להוסיף משתנים ופונק' לאובייקט שהגדרת כבר. תוכל לקרוא על זה פה: http://www.internet-israel.com/internet/%D7%A4%D7%99%D7%AA%D7%95%D7%97-%D7%90%D7%99%D7%A0%D7%98%D7%A8%D7%A0%D7%98/jquery-%D7%9C%D7%9E%D7%AA%D7%A7%D7%93%D7%9E%D7%99%D7%9D/javascript-prototype/
על תכנות OOP עם Javascript תוכל לקרוא פה: http://www.internet-israel.com/internet/%D7%A4%D7%99%D7%AA%D7%95%D7%97-%D7%90%D7%99%D7%A0%D7%98%D7%A8%D7%A0%D7%98/%D7%91%D7%A0%D7%99%D7%99%D7%AA-%D7%90%D7%AA%D7%A8%D7%99-%D7%90%D7%99%D7%A0%D7%98%D7%A8%D7%A0%D7%98-%D7%9C%D7%9E%D7%A4%D7%AA%D7%97%D7%99%D7%9D/javascript-%D7%9B%D7%A9%D7%A4%D7%94-%D7%9E%D7%95%D7%A0%D7%97%D7%99%D7%AA-%D7%A2%D7%A6%D7%9E%D7%99%D7%9D/
זאת לא הגדרה של B. אתה כתבת פה B.prototype כאילו שB קיים ואתה מרחיב אותו. prototype זה כדי להוסיף משתנים ופונק' לאובייקט שהגדרת כבר.