function mArray(){
this.id="fdsa";
this.name="fdsafd";
}
mArray.prototype=new Array();
mArray.prototype.sayHi=function(){alert("hi");}
var m=new mArray();
m.push("1");
m.push("2");
m.push("3");
m.sayHi();
alert(m[0]); //这里会是什么结果?
alert(m.length); //这里又是什么结果?
大家先不要帖代码运行,直接看代码两个地方是什么结果?
问题补充
2楼的实例继承是没问题,但是占内存,而且想不通为什么原型继承会出现这么奇怪的问题。方法都继承下来了,但是执行的结果不合常理。
奇怪js原型继承,奇怪!实在想不通!
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- 无冥 2009-10-30 11:57关注
其实很正常, 内置对象在引擎初始化阶段就被创建好了,
有些属性会被引擎隐式的维护..其他对象继承不来的, 比如包装类, Date对象的方法, [color=red]Array自动维护的length属性. [/color]
所以你的mArray对象, 引擎并不帮你维护length属性, 所以始终为0, 也因为这样,
push方法虽然继承过来了, 但push时会覆盖之前push的元素.
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 安装svn网络有问题怎么办
- ¥15 Python爬取指定微博话题下的内容,保存为txt
- ¥15 vue2登录调用后端接口如何实现
- ¥65 永磁型步进电机PID算法
- ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
- ¥88 找成都本地经验丰富懂小程序开发的技术大咖
- ¥15 如何处理复杂数据表格的除法运算
- ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
- ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
- ¥15 latex怎么处理论文引理引用参考文献