位置: 编程技术 - 正文
JS的函数定义可以指定形式参数名称,多多少少我们会以为js至少可以支持参数个数不同的方法重载,然而遗憾的是这仅仅是一个假象,js所有的参数都是以arguments传递过去的,这个参数类似于数组,在函数调用的时候,所有的实参都是保存在了这个数据结构里面,我们定义函数的时候所指定的形式参数其实是为这个数据结构里面的数据定义一个快捷的访问方式。也就是说js所有的函数都是支持无限个参数的,加上数据类型是弱类型,那么JS的函数除了名称就真的没有方法区别了?
办法总是有的,我们可以利用JavaScript中的特殊对象arguments来模拟函数重载。用它来判断传入参数的个数或类型以区分重载。
1.根据参数个数重载
js判断传入参数数量可以用arguments.length这个属性来判断;
2.根据参数类型重载
判断变量类型的3种方法:1.用 typeof 语句判断变量类型,typeof语句返回类型对应的字符串。2.用 instanceof 语句判断变量类型,instanceof语句返回true/false。3.用 constructor 属性判断变量类型,这个属性返回用来构造该变量的构造函数引用。对照表:可以看出用 typeof 不能准确的判断出具体的类型,所以我们用 constructor 来进行判断。typeofstringnumberobjectfunctionbooleanobjectobjectconstructorStringNumberObjectFunctionBooleanArrayUser Define
推荐整理分享javascript函数重载解决方案分享(js函数重名),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:js函数重名,js函数去重,javascript重载,javascript函数重载,js函数重名,js重写某个function,js重复定义函数,js重复定义函数,内容如对您有帮助,希望把文章链接给更多的朋友!
javascript异步编程的4种方法 你可能知道,Javascript语言的执行环境是"单线程"(singlethread)。所谓"单线程",就是指一次只能完成一件任务。如果有多个任务,就必须排队,前面一
JS的get和set使用示例 巧用get和set,能够直接操作对象属性实现读写,可以极大的提高编程效率,给出一个典型示例:vartest={_Name:null,_Age:0,//_Name的读写setname(name){this._Name=name;}
Javascript中引用示例介绍 在Javascript脚本中,参数的引用原则:引用的参数内部(如属性)可以修改,但参数对应的引用(reference)不能修改。一个测试例子如下:scriptlanguage="jav
标签: js函数重名
本文链接地址:https://www.jiuchutong.com/biancheng/373737.html 转载请保留说明!友情链接: 武汉网站建设