关于一个继承例子的疑惑 让triangle继承polygon的属性和方法。不过,看不明白你的例子中,两个alert想说明什么问题。对于prototype,下面的网页上解释的比较清楚。http://www.javaeye.com/topic/53537 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 哦,对...是alert(oTriangle.sides);应该是这个alert...这样的话...还是能alert出来sides = 3去掉了那一句...还是继承了属性?我不太懂... //triangle.prototype = new polygon();意思是继承 polygon的prototype在这里就是 getArea然后triangle又重新定义了getArea如果不重新定义就是0;楼主可以试试<script>function polygon(iSides) { this.sides = iSides;}polygon.prototype.getArea = function() { return 0;}function triangle(iBase, iHeight) { polygon.call(this, 3); this.base = iBase; this.height = iHeight;}triangle.prototype = new polygon(); // 打开这个//triangle.prototype.getArea = function() { //注释掉这个 // return 0.5 * this.base * this.height;//}function test() { var oTriangle = new triangle(2, 4); var oTriangle1 = new triangle(4, 8); alert(oTriangle.getArea()); // 0 alert(oTriangle1.getArea()); // 0}test();</script> 你需要看一下prototype, call 的资料。还有JSON的资料。你的程序中使用了 polygon.call(this, 3);用面向对象的概念就是这操作覆盖了父对象的属性。实际上就是调用polygon(iSides) 给 triangle对象追加了一个.sides属性。triangle.prototype = new polygon()之后,在整个链中 triangle 和他的父对象都有了sides属性。不过用为最先找到的时triangle 自己的side属性,因此返回3。你最好还是看看我在1楼发的链接。 分享个新思路 —— Web跨域、跨页面、跨进程通信 不能变换LOGO问题,求帮助? 地图 求5个正则表达式!最先答对的给分!一个10分 试试这个页面,如果去掉滚动条? 求教如何获取父div中的子div的id 如何做站内搜索 在行中我点击一下这行中的联接后怎么使这行的颜色变成蓝色 请问如何取得表格在页面中的位置? jquery mobile 局部刷新的问题 在js中想得到当前时间的后三年时间 在js中想得到当前时间的后三年时间
哦,对...
是alert(oTriangle.sides);
应该是这个alert...
这样的话...还是能alert出来sides = 3
去掉了那一句...还是继承了属性?我不太懂...
意思是继承 polygon的prototype
在这里就是 getArea
然后triangle又重新定义了getArea
如果不重新定义就是0;
楼主可以试试<script>
function polygon(iSides) {
this.sides = iSides;
}
polygon.prototype.getArea = function() {
return 0;
}function triangle(iBase, iHeight) {
polygon.call(this, 3);
this.base = iBase;
this.height = iHeight;
}
triangle.prototype = new polygon(); // 打开这个
//triangle.prototype.getArea = function() { //注释掉这个
// return 0.5 * this.base * this.height;
//}function test() {
var oTriangle = new triangle(2, 4);
var oTriangle1 = new triangle(4, 8);
alert(oTriangle.getArea()); // 0
alert(oTriangle1.getArea()); // 0
}
test();
</script>
你需要看一下prototype, call 的资料。
还有JSON的资料。
你的程序中使用了 polygon.call(this, 3);
用面向对象的概念就是这操作覆盖了父对象的属性。
实际上就是调用polygon(iSides) 给 triangle对象追加了一个.sides属性。
triangle.prototype = new polygon()之后,
在整个链中 triangle 和他的父对象都有了sides属性。
不过用为最先找到的时triangle 自己的side属性,因此返回3。你最好还是看看我在1楼发的链接。