1、重载
var a = 10var a = 20console.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()