第204天:js---重载和多态

简介: 一、根据arguments个数实现重载js本身不支持重载,所以只能通过其他方式实现,arguments检测传参的个数,然后再执行不同的方式 1 function add() { 2 var sum = 0 ; 3 for ( var i = 0 ; i < arguments.

一、根据arguments个数实现重载

js本身不支持重载,所以只能通过其他方式实现,arguments检测传参的个数,然后再执行不同的方式

 1 function add() {
 2         var sum = 0 ;
 3         for ( var i = 0 ; i < arguments.length; i ++ ) {
 4             sum += arguments[i];
 5         }
 6         return sum;
 7     }
 8     alert(add());
 9     alert(add( 1 , 2 ));
10     alert(add( 1 , 2 , 3 ));

二、检测数据类型实现重载

根据传参的类型,调用不同的方法,用typeof进行检测

 1 //检测数据类型实现重载 typeof
 2     var MyClass=function(){
 3         var AddNum=function(a,b){
 4             return a+b;
 5         }
 6         var AddString=function(a,b){
 7             return "I am here"+a+b;
 8         }
 9         this.Add=function(a,b){
10             if(typeof(a)=="number")
11                 return AddNum(a,b);
12             else
13                 return AddString(a,b);
14         }
15     }
16 
17     function add(a,b){
18         return a+b;
19     }
20 
21     function add(a,b){
22         return "I am here"+a+b;
23     }
24 
25     var MyObj = new MyClass();
26     var X = MyObj.Add(5,6);
27     var Y = MyObj.Add("A","FFFFFF");
28     alert(X); //结果:11
29     alert(Y); //结果:I am hereAFFFFFF

三、jquery中的重载

如果传递2个参数表示获取值,传递三个参数表示赋值

 1 function attr(id, key, value){
 2         var dom =  $$.$id(id);
 3         var args = arguments.length;
 4         if(args ===3 ){
 5             dom.setAttribute(key, value);
 6         }else{
 7             return dom.getAttribute(key);
 8         }
 9     }
10 attr(1,2);
11 attr(1,2,3);

 

相关文章
|
5月前
|
JavaScript
重载和多态的使用场景(js的问题)
重载和多态的使用场景(js的问题)
24 0
|
1月前
|
JavaScript
Nest.js 实战 (十一):配置热重载 HMR 给服务提提速
这篇文章介绍了Nest.js服务在应用程序引导过程中,TypeScript编译对效率的影响,以及如何通过使用webpackHMR来降低应用实例化的时间。文章包含具体教程,指导读者如何在项目中安装依赖包,并在根目录下新增webpack配置文件webpack-hmr.config.js来调整HMR相关的配置。最后,文章总结了如何通过自定义webpack配置来更好地控制HMR行为。
|
JavaScript
js基础笔记学习111-多态2
js基础笔记学习111-多态2
60 0
js基础笔记学习111-多态2
|
JavaScript
js基础笔记学习110-多态1
js基础笔记学习110-多态1
50 0
js基础笔记学习110-多态1
|
JavaScript 前端开发
【JavaScript】27_多态
# 7、多态 定义一个函数,这个函数将接收一个对象作为参数,他可以输出hello并打印对象的name属性 多态 - 在JS中不会检查参数的类型,所以这就意味着任何数据都可以作为参数传递 - 要调用某个函数,无需指定的类型,只要对象满足某些条件即可 - 如果一个东西走路像鸭子,叫起来像鸭子,那么它就是鸭子 - 多态为我们提供了灵活性 ```html <script> class Person{ constructor(name){ this.name = name }
74 0
|
JavaScript API
JS 高级(三)继承、多态、ES5严格模式
JS 高级(三)继承、多态、ES5严格模式
176 0
JS 高级(三)继承、多态、ES5严格模式
|
JavaScript
JS 高级(一)RegExp、函数、重载、作用域和作用域链
JS 高级(一)RegExp、函数、重载、作用域和作用域链
145 0
JS 高级(一)RegExp、函数、重载、作用域和作用域链
|
JavaScript 前端开发
初识JavaScript函数Arguments模拟重载
初识JavaScript函数Arguments模拟重载
102 0
|
JavaScript 前端开发
【前端自动化】如何使用Node.js实现热重载页面
【前端自动化】如何使用Node.js实现热重载页面
|
JavaScript 前端开发 Java
浅谈JavaScript的面向对象和它的封装、继承、多态
写在前面 既然是浅谈,就不会从原理上深度分析,只是帮助我们更好地理解... 面向对象与面向过程 面向对象和面向过程是两种不同的编程思想,刚开始接触编程的时候,我们大都是从面向过程起步的,毕竟像我一样,大家接触的第一门计算机语言大概率都是C语言,C语言就是一门典型的面向过程的计算机语言。
1100 0