对象的问题 alert(alist.length)调用的是length的toString()方法.lz不是已经定义了吗?length是个对象,当然调用它的toString()方法了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 为什么alert(list)会输出1,2,3的结果,难道他会自动调用toString方法? 是的那alert(alist.length);调用的又是什么方法呢?掉用的是 this.length={valueOf:function (){return m_elements.length;},toString: function(){return m_elements.length;}} length 的 toString方法 你去掉toString 就可以看出来了 <html><script> function list(){ var m_elements=[]; m_elements = Array.apply(m_elements,arguments); this.length={ valueOf:function (){ alert('valueOf'); return m_elements.length; }, toString: function(){ return m_elements.length; } } this.toString=function(){ return m_elements.toString(); } this.add=function(){ m_elements.push.apply(m_elements,arguments); alert('add'); } } var alist=new list(1,2,3); alert(alist); alert(alist.length); alist.add(4,5,6); alert(alist); alert(alist.length);</script></html>alert('add');是打出来了1次,说明alert(alist);只调用了toString()方法,为什么?alert('valueOf');没打出来,为什么valueOf()方法不调用?谁能说说原理,谢谢 去掉toString()方法显示object?为什么会显示alist的类型? ExtJS editorgrid获取store的问题 ExtJS Grid自动更新问题 关于JS时间计算的问题,在线等,立马结贴!! 有关INPUT框输入值的控制问题 jquery代码写在jsp有效,放到js文件引入就无效 招聘熟悉HTML,DHTML,JavaScript等客户端脚本的人才! 很简单的基础问题! Extjs 窗体问题 问个控制弹出窗口的问题 net_love:有空帮调试一下这个程序啊,那天问得不清楚!!!rsMenu.js和rsMenu.htm 搜索引擎 firefox不兼容问题 IE下很好使???????????? CheckBox选中时如何切换不同的页面内容?
那alert(alist.length);调用的又是什么方法呢?掉用的是
this.length={
valueOf:function (){
return m_elements.length;
},
toString: function(){
return m_elements.length;
}
}
length 的 toString方法
<script>
function list(){
var m_elements=[];
m_elements = Array.apply(m_elements,arguments);
this.length={
valueOf:function (){
alert('valueOf');
return m_elements.length;
},
toString: function(){
return m_elements.length;
}
}
this.toString=function(){
return m_elements.toString();
}
this.add=function(){
m_elements.push.apply(m_elements,arguments);
alert('add');
}
}
var alist=new list(1,2,3);
alert(alist);
alert(alist.length);
alist.add(4,5,6);
alert(alist);
alert(alist.length);
</script>
</html>
alert('add');是打出来了1次,说明alert(alist);只调用了toString()方法,为什么?
alert('valueOf');没打出来,为什么valueOf()方法不调用?
谁能说说原理,谢谢