call / apply改变this取向

test() ------- test.call() 一样

function Person(name ,age){
this.name = name;
this.age = age;//此时的this是window
}
var person = new Person(张三,18)//在此 this为person

常用于模块引用,即借用别人的函数完成自己的行为,前提是你的需求要完全涵盖别人已经做好的东西
如
function Person(name, age, sex){
	this.name = name;
	this.age = age;
	this.sex = sex;
}

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

call() 的目的是改变this的取向和传参

apply差不多但是传参方式不一样
apply传的是arguments数组,而且只能传一个

arguments伪数组

1.什么是伪数组
伪数组是一个含有length属性的对象,但不具有数组的方法,但仍可以用数组遍历的的方法去遍历他。

发布了81 篇原创文章 · 获赞 3 · 访问量 1011

猜你喜欢

转载自blog.csdn.net/qq_43618136/article/details/103805113