1、重载
var a = 10
var a = 20
console.log(a);//20
使用funcation声明的方法,本质上是window的方法,所以这两个同名的变量,下面的a会覆盖上面的a
重载:就是函数或者方法有相同的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者重载方法
重载:根据传入的参数动态决定调用哪个方法
JS不支持重载,想要JS支持就需要用arguments对象(arguments是一个类数组)
JS传递不定参,函数使用arguments对象管理函数内部的参数
function go(){
if(arguments.length == 1){
console.log(arguments[0]);
}else if(arguments.length == 2){
console.log(arguments[0]);
console.log(arguments[0]+arguments[1]);
}
}
go(10,20)
通过判断arguments这个类数组对象的长度,来获取传入的参数的长度(个数),然后决定执行哪个方法
2、函数对象
函数作为对象的属性,这种称为对象的方法
this关键字指向问题
1、在事件中,谁执行事件,this指向谁
2、谁执行方法,this指向谁
var obj = {
name:'html',
sayName:function(){
console.log(this.name);
}
}
obj.sayName()