call/apply

180 阅读1分钟

作用:改变this指向

区别:传参列表不同

---> call 需要把实参按照形参的个数传进去

---> apply 需要传一个arguments

借用别人的函数实现自己的功能

function Person(name, age) {
    this.name = name;
    this.age = age;
}

var person = new Person('li', 10);

var obj = {
}
Person.call(obj, 'li', 10);	//Object{name: ‘li', age: 10}
function Person(name, age, sex) {
    this.name = name;
    this.age = age;
    this.sex = sex;
}

function Student(name, age, sex, number, grade) {
    Person.call(this, name, age, sex);
    this.number = number;
    this.grade = grade;
}

var student = new Student ('sunny', 12, 'male', 123456, 2019);