prototype中的arguments奇异问题? <script type='text/javascript'>function a(){alert(arguments[4])var b=arguments[4]==undefined ?'1':arguments[4];alert(b)}a();</script>是你的写法有问题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 写法有问题?是指那里?<script type='text/javascript'>function a(){ alert(arguments[4]) var b=arguments[4]==undefined ?'1':arguments[4]; alert(b)}a();</script>======initialize:function(p,aopa,la,tarifr) { this.pE=p; this.AOPA=aopa; this.linkarr=la; this.tarIframe=tarifr; this.objid=arguments[4]==null?'1':arguments[4]; this.reset(); }, 这是prototype的初始化函数,this.reset()是调用该类的reset()方法 arguments[4]==undefined 如果没有的话要用undefined来判断,null不行 对象类片段/* 全局声明 */ (这些是预备类对象的声明,也就是一个引用该脚本文件的页面最多能有5个实例)var azuresong=null;var azuresong2=null;var azuresong3=null;var azuresong4=null;var azuresong5=null;/* AzureSong类* 该类生成二级深度菜单列表*/var AzureSong=Class.create();AzureSong.prototype={ initialize:function(p,aopa,la,tarifr) { this.pE=p; this.AOPA=aopa; this.linkarr=la; this.tarIframe=tarifr; this.objid=arguments[4]==null?'1':arguments[4]; arguments[4]=null; this.reset(); }, /* 初始化AzureSong */ reset:function() { var sbody=this.doFirstItem(); $(this.pE).innerHTML+=sbody; this.doLink(); }, ...... ...... ,}页面中:azuresong=new AzureSong(......); <script type="text/ecmascript">alert(undefined == null); //他没用衡等,类似无所谓,不过我测试没错啊,能给段可测试的代码否var o = function () { this.initialize();};o.prototype = { constructor : o , initialize : function(p,aopa,la,tarifr) { this.pE=p; this.AOPA=aopa; this.linkarr=la; this.tarIframe=tarifr; this.objid=arguments[4]==null?'1':arguments[4]; this.reset(); } , reset : function () { alert(1); }};new o;</script> initialize:function(p,aopa,la,tarifr) { this.pE=p; this.AOPA=aopa; this.linkarr=la; this.tarIframe=tarifr; this.objid=arguments[4]==undefined?'1':arguments[4]; this.reset(); },还是出原来的错误.加个注释就没问题了 initialize:function(p,aopa,la,tarifr) { this.pE=p; this.AOPA=aopa; this.linkarr=la; this.tarIframe=tarifr; this.objid=arguments[4]==undefined?'1':arguments[4]; //arguments[4]==null; this.reset(); }, 果然 ==null我没测试看来不能偷懒 把静态文件和代码择到一个文件夹中,测试了一下,发现是文件拷贝的问题.就是一个js文件d:\a.js 拷贝到 c:\abc\a.js在这个拷贝过程中,含有这行代码的Js "arguments[4]=null;" 在js文件末尾是一段注释(正常) ... ... </ul> </ul> </div>*/不含有这行代码的Js "arguments[4]=null;" 在js文件末尾是一段注释(错误) </ul> </ul> </div>*/ </ul> <---- 被解释成了js代码 </div>*/多出来一段,造成脚本错误,我想这是Java FileIO 的问题,可能对文本文件的注释标记"*/"拷贝时的意外.最后经过测试,这行代码 arguments[4]=null; 有没有脚本都是正确的,它只是造成了文件拷贝的意外initialize:function(p,aopa,la,tarifr) { this.pE=p; this.AOPA=aopa; this.linkarr=la; this.tarIframe=tarifr; this.objid=arguments[4]==null?'1':arguments[4]; this.reset(); }, 多谢大家的建议和帮助,结贴 编程文章网 http://www.KingOfCoder.com新年快乐 怎样将外部数据添加到页面中? 高分求解firefox下回车自动提交表单的问题 鼠标移入 移出 显示与隐藏层的问题? 求只是该字符串的正则表达式(js) 在线播放多媒体 用jquery获取datagrid隐藏的列的值 Ext.ux.maximgb is undefined 需要引用什么东西 ? 求助:关于下拉菜单 当找不到网页时如何给出自定义的错误提示? .net 中json的一点问题 构造函数中不可以调用函数? JS的日历脚本如何显示两位数的年
是指那里?<script type='text/javascript'>
function a()
{
alert(arguments[4])
var b=arguments[4]==undefined ?'1':arguments[4];
alert(b)
}
a();
</script>======
initialize:function(p,aopa,la,tarifr)
{
this.pE=p;
this.AOPA=aopa;
this.linkarr=la;
this.tarIframe=tarifr;
this.objid=arguments[4]==null?'1':arguments[4];
this.reset();
}, 这是prototype的初始化函数,this.reset()是调用该类的reset()方法
var azuresong=null;
var azuresong2=null;
var azuresong3=null;
var azuresong4=null;
var azuresong5=null;
/* AzureSong类
* 该类生成二级深度菜单列表
*/
var AzureSong=Class.create();
AzureSong.prototype=
{
initialize:function(p,aopa,la,tarifr)
{
this.pE=p;
this.AOPA=aopa;
this.linkarr=la;
this.tarIframe=tarifr;
this.objid=arguments[4]==null?'1':arguments[4];
arguments[4]=null;
this.reset();
},
/* 初始化AzureSong */
reset:function()
{
var sbody=this.doFirstItem();
$(this.pE).innerHTML+=sbody;
this.doLink();
}, ......
......
,
}页面中:
azuresong=new AzureSong(......);
<script type="text/ecmascript">
alert(undefined == null); //他没用衡等,类似无所谓,不过我测试没错啊,能给段可测试的代码否var o = function () {
this.initialize();
};
o.prototype = { constructor : o
, initialize : function(p,aopa,la,tarifr) {
this.pE=p;
this.AOPA=aopa;
this.linkarr=la;
this.tarIframe=tarifr;
this.objid=arguments[4]==null?'1':arguments[4];
this.reset();
}
, reset : function () {
alert(1);
}
};new o;
</script>
{
this.pE=p;
this.AOPA=aopa;
this.linkarr=la;
this.tarIframe=tarifr;
this.objid=arguments[4]==undefined?'1':arguments[4];
this.reset();
},还是出原来的错误.
加个注释就没问题了 initialize:function(p,aopa,la,tarifr)
{
this.pE=p;
this.AOPA=aopa;
this.linkarr=la;
this.tarIframe=tarifr;
this.objid=arguments[4]==undefined?'1':arguments[4];
//arguments[4]==null;
this.reset();
},
看来不能偷懒
d:\a.js 拷贝到 c:\abc\a.js
在这个拷贝过程中,含有这行代码的Js "arguments[4]=null;" 在js文件末尾是一段注释(正常)
...
...
</ul>
</ul>
</div>
*/不含有这行代码的Js "arguments[4]=null;" 在js文件末尾是一段注释(错误)
</ul>
</ul>
</div>
*/
</ul> <---- 被解释成了js代码
</div>
*/
多出来一段,造成脚本错误,我想这是Java FileIO 的问题,可能对文本文件的注释标记"*/"拷贝时的意外.最后经过测试,这行代码 arguments[4]=null; 有没有脚本都是正确的,它只是造成了文件拷贝的意外
initialize:function(p,aopa,la,tarifr)
{
this.pE=p;
this.AOPA=aopa;
this.linkarr=la;
this.tarIframe=tarifr;
this.objid=arguments[4]==null?'1':arguments[4];
this.reset();
}, 多谢大家的建议和帮助,结贴
新年快乐