JS call 与 applay
function CarStyle(color, width, height, len) {
this.color = color;
this.width = width;
this.height = height;
this.len = len;
}
function Car() {
CarStyle.call(this, "red", 1200, 800, 1700);
}
function Cars() {
CarStyle.apply(this,["red", 1200, 800, 1700]);
}
call:
- 改变this的指向;
- 参数:改变后的指向,构造函数的参数;
- 如上述例子 Car 中:
- 第一个参数为this 则CarStyle.call(this, “red”, 1200, 800, 1700);执行后CarStyle的this指向Car - 用途:当别的构造函数里的方法或属性是自己要写的方法或属性可以通过call方法获得;
apply:
- 与call用途相同;
- 区别:传参时第一位是改变后的this指向,第二位必须为装有参数的数组