首頁 >web前端 >js教程 >call()和apply()方法有什麼差別

call()和apply()方法有什麼差別

清浅
清浅原創
2018-11-14 17:48:523446瀏覽

這篇文章主要和大家介紹JavaScript中的call()和apply()方法的使用以及它們之間的區別,有一定的參考價值,希望對大家有幫助

#在JavaScript中我們常用兩種方法來改變this的指向,簡化程式碼的複雜度,這兩種方法就是call()和apply()方法,接下來將分享它們的用法與區別

#call()方法

call()方法中第一個參數是改變this指向,第二個參數是需要傳的參數

<script>		
function Person(name, age,height){
	this.name=name;
	this.age=age;
	this.height=height;
}
function Student(name,age,height,sex,grade){
	Person.call(this,name,age,height);//将Person的参数传给Student
	this.sex=sex;
	this.grade=grade;}
 var student=new Student("张三",18,180,"男",88);
	</script>
运行结果:

Image 20.jpg

apply()方法

#apply()方法改變this指向,第二個值只能傳一個實參且是陣列

<script>	
function Person(name, age,height){
	this.name=name;
	this.age=age;
	this.height=height;
}
function Student(name,age,height,sex,grade){
	Person.apply(this,[name,age,height]);//注意这儿传递的是数组
	this.sex=sex;
	this.grade=grade;}
 var student= new Student("张三",18,180,"男",88);
	</script>	
运行结果:

Image 20.jpg

#call()與apply()方法的差異

call()方法的第二個值可以傳遞多個參數,實參必須要按照形參的個數和順序進行傳參

apply()方法的第二個值只能傳一個必須是數組才可以,所以apply()方法適合使用形參是數組的,call()方法適合傳遞連續的參數

總結:以上就是本篇文章的全部內容,希望大家在應用時要注意方法的選擇

以上是call()和apply()方法有什麼差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn