JavaScript——方法
定义方法
方法就是把函数放在对象的里面,对象只有两个东西:属性和方法
1 var cl={ 2 name:'cl', 3 birth: 2001, 4 //方法 5 age:function(){ 6 //今年 - 出生的年 7 var now=new Date().getFullYear(); 8 return now-this.birth; 9 } 10 } 11 12 //属性 13 cl.age 14 //方法,一定要带 () 15 cl.age()
this.代表什么?(拆开上面代码)
1 function getAge(){ 2 //今年 - 出生的年 3 var now=new Date().getFullYear(); 4 return now-this.birth; 5 } 6 var cl={ 7 name:'cl', 8 birth: 2001, 9 age:getAge 10 } 11 //cl.age() //输出结果与上面一致 12 //getAge() //输出NaN
this是无法指向的,是默认指向调用它的那个对象!
apply
在js可以控制this指向!
1 function getAge(){ 2 //今年 - 出生的年 3 var now=new Date().getFullYear(); 4 return now-this.birth; 5 } 6 var cl={ 7 name:'张三', 8 birth: 2001, 9 age:getAge 10 } 11 var xiaoming={ 12 name:'小明', 13 birth: 2002, 14 age:getAge 15 } 16 //cl.age() //输出结果与上面一致 17 //getAge() //输出NaN 18 19 getAge.apply(cl,[]); //this, 指向了cl ,参数为空 20 getAge.apply(xiaoming,[]); //道理一样