js函数的参数
2016-03-21 11:30
316 查看
js函数的参数:
js是弱类型的编程语言,调用函数时既不在乎函数的参数,也不在意参数的类型
即便你定义的函数值接受两个参数,在调用这个函数时也未必一定要是两个参数。
可以传递一个、三个甚至不传递参数,而解析器永远不会有什么怨言.
之所以会这样,原因是ecmascript中的参数在内部是用一个数组来运行的。函数接受到的永远是这个数组,而不关心数组中包含哪些参数(如果有参数的话)如果这个数组中不包含任何元素,无所谓;如果包含多个元素,也没问题.
所有参数都可以通过arguments对象来获取
function Animal(name){
this.name = 'animal';
this.showName = function(){
console.log(this.name);
console.log(name);
}
console.log(arguments);
}
获取方法的参数个数
arguments的callee属性
表示对函数对象本身的引用,也就是所指定的 Function 对象的正文,这有利于实现匿名函数的递归或者保证函数的封装性。
示例(递归调用):
js是弱类型的编程语言,调用函数时既不在乎函数的参数,也不在意参数的类型
即便你定义的函数值接受两个参数,在调用这个函数时也未必一定要是两个参数。
可以传递一个、三个甚至不传递参数,而解析器永远不会有什么怨言.
之所以会这样,原因是ecmascript中的参数在内部是用一个数组来运行的。函数接受到的永远是这个数组,而不关心数组中包含哪些参数(如果有参数的话)如果这个数组中不包含任何元素,无所谓;如果包含多个元素,也没问题.
所有参数都可以通过arguments对象来获取
function Animal(name){
this.name = 'animal';
this.showName = function(){
console.log(this.name);
console.log(name);
}
console.log(arguments);
}
获取方法的参数个数
function test(a,b){ var actual = arguments.length; var expected = test.length; console.log(actual); // 5 实际传入5个 console.log(expected); // 2 期望 2个 console.log(arguments[1]); // 输出 43 } test(23,43,63,23,23);
arguments的callee属性
表示对函数对象本身的引用,也就是所指定的 Function 对象的正文,这有利于实现匿名函数的递归或者保证函数的封装性。
示例(递归调用):
var sum=function(n){ if(1==n) { return 1; } else { console.log(n); return n + arguments.callee(n-1); } } alert(sum(100));
相关文章推荐
- js获取对象的属性和方法总结
- js实现trim() JS去掉首尾空格 JS去掉两头空格
- 常用JS表单验证函数
- js如何判断访问是来自搜索引擎(蜘蛛人)还是直接访问?
- 百度蜘蛛爬行js文件能否完全识别js代码
- 如何实现JS_MD5加密(2013-
- js 手机,pad,电脑,客户端判断跳转。。
- js调用中文乱码问题
- js 屏蔽鼠标右键,复制,黏贴,保存
- <a>标签中href=\"javascript:;\"表示什么意思??
- js 如何获得ckeditor的值
- javascript 全局变量,私有变量。
- JSON 教程
- 把 JSON 文本转换为 JavaScript 对象
- 在Javascript中 声明时用\"var\"与不用\"var\"的区别
- 使用JS实现单击连接保存图片
- iframe侧栏点击隐藏,显示javascript切换
- js document.write()使用介绍
- js禁止页面复制文字和鼠标右键代码
- javascript为什么 0.1 + 0.2 = 0.30000000000000004