函数的call,apply方法

57 阅读1分钟

函数的调用

我们熟知的函数的调用方法为(),即function m(a,b){ console.log(a,b)}。调用m函数 -> m(1,2)。

只要定义了一个函数,函数中就会自带有call.apply两个方法。他们的作用都是改变函数中的this指向。

m.call() === m()。其实函数的调用就相当于是用call调用,当call方法中的第一个参数有值时,函数的this指向就为第一个参数.

var arr = [1,2,3];
function m(a,b) {
  console.log(a,b)
  };
  m.call(arr,2.3);
  //输出:[1,2,3] 2 3

由此引出继承

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

function M2(name, age, job) {
  M.call(this, name, age);//调用M函数,改变他的this指向M2
  this.job = job;
}

var m = new M2("蔡kk", 18, "唱跳rap");
console.log(m);
//输出:M2 { name: '蔡kk', age: 18, job: '唱跳rap' }