js call与apply方法的用法
2017-11-22 本文已影响0人
想回到童年
差别
call方法使用 function.call(this.obj,arg1,arg2,...)
apply方法使用 function.call(this.obj,[arguements])
作用
1.自身对象没有某方法或属性,使用其他对象的方法和属性。其实就是改变其他对象上的方法的this指针;
function person(name){
this.name = name;
this.getName=function(){
console.log(this.name)
}
}
function student(name){
this.name = name;
}
var person1 = new person("li");
var student1 = new student("wang");
person1.getName.call(student1); //输出wang 切记call后面跟的参数 是前面方法后面的参数
2.实现继承
function person(name){
this.name = name;
this.getName=function(){
console.log(this.name);
}
}
function student(name){
person.call(this,name) ;
//改变this指针到实例化的对象,用实例化的对象调用此方法
}
var student1 = new student("wang");
student1.getName() //输出wang