函数的调用
我们熟知的函数的调用方法为(),即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' }