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
上一篇 下一篇

猜你喜欢

热点阅读