Javascript中的arguments与重载介绍
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Javascript中的arguments与重载介绍,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1702字,纯文字阅读大概需要3分钟。
内容图文
因为语言上的设计错误,arguments可以被当成一个数组。
代码如下:
function zero () {
console.log(arguments[0]);
}
也会有
代码如下:
function zero () {
for(var i=0;i<arguments.length;i++){
console.log(arguments[i]);
}
}
它利用了Javascript的一个事实,即Javasc
而这里的arguments变量给实参提供了一个类似数组的接口。因为这里的arguments的可变参数,我们可以利用这个有意思的东西来做一些有意思的事,比如重载。
Javscript 重载
stackvoerflow上有一个关于重载的问题,于是有了第一个答案
代码如下:
if (typeof friend === "undefined") {
} else {
}
还有一个答案则是
代码如下:
switch (arguments.length) {
case 0:
//Probably error
break;
case 1:
//Do something
break;
case 2:
default: //Fall through to handle case of more parameters
//Do something else
break;
}
只是这种方式真的不好看,难道我们的函数最后要变成这样子的?
代码如下:
function zero1 (){
console.log('arguments 1')
};
function zero2 (){
console.log('arguments 2')
};
function zero () {
if(arguments.length == 1){
zero1();
} else{
zero2();
}
}
真的一点都不好看,即使我们换个switch..case,也不好看啊。
Javascript arguments不是一个数组
arguments不是向我们看到的那样一直是一个数组,有时候可能不是。
代码如下:
function hello(){
console.log(typeof arguments);
}
这里arguments的类型是一个对象,虽然数组的类型也是一个对象,虽然我们可以将之转换为一个数组
代码如下:
var args = Array.prototype.slice.call(arguments);
但是这也表明了这不是一个数组,它拥有的只有Array的唯一一个属性,即length。除此还有
arguments.callee
Reference to the currently executing function.
arguments.caller
Reference to the function that invoked the currently executing function.
arguments.length
Reference to the number of arguments passed to the function.
内容总结
以上是互联网集市为您收集整理的Javascript中的arguments与重载介绍全部内容,希望文章能够帮你解决Javascript中的arguments与重载介绍所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。