1、重载

  1. var a = 10
  2. var a = 20
  3. console.log(a);//20
  4. 使用funcation声明的方法,本质上是window的方法,所以这两个同名的变量,下面的a会覆盖上面的a
  5. 重载:就是函数或者方法有相同的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者重载方法
  6. 重载:根据传入的参数动态决定调用哪个方法
  7. JS不支持重载,想要JS支持就需要用arguments对象(arguments是一个类数组)
  8. JS传递不定参,函数使用arguments对象管理函数内部的参数
  1. function go(){
  2. if(arguments.length == 1){
  3. console.log(arguments[0]);
  4. }else if(arguments.length == 2){
  5. console.log(arguments[0]);
  6. console.log(arguments[0]+arguments[1]);
  7. }
  8. }
  9. go(10,20)
  10. 通过判断arguments这个类数组对象的长度,来获取传入的参数的长度(个数),然后决定执行哪个方法

2、函数对象

  1. 函数作为对象的属性,这种称为对象的方法
  2. this关键字指向问题
  3. 1、在事件中,谁执行事件,this指向谁
  4. 2、谁执行方法,this指向谁
  1. var obj = {
  2. name:'html',
  3. sayName:function(){
  4. console.log(this.name);
  5. }
  6. }
  7. obj.sayName()