1. 程式人生 > >函數對象的call()、apply() 方法區別

函數對象的call()、apply() 方法區別

方法區 法規 名稱 nan 一個 函數對象 con 實參 列表

函數對象的call()、apply() 方法

函數作為對象提供了call(),apply() 方法,他們也可以用來調用函數,這兩個方法都接受一個對象作為參數,用來指定本次調用時函數中this的指向;

 

call()方法

call方法使用的語法規則

函數名稱.call(obj,arg1,arg2...argN);

參數說明:

obj:函數內this要指向的對象,

arg1,arg2...argN :參數列表,參數與參數之間使用一個逗號隔開


var lisi = {names:‘lisi‘};
var zs = {names:‘zhangsan‘};
function f(age){ console.log(this.names); console.log(age); } f(23);//undefined //將f函數中的this指向固定到對象zs上; f.call(zs,32);//zhangsan apply()方法 函數名稱.apply(obj,[arg1,arg2...,argN]) 參數說明: obj :this要指向的對象 [arg1,arg2...argN] : 參數列表,要求格式為數組 var lisi = {name:‘lisi‘}; var zs = {name:‘zhangsan‘};
function f(age,sex){ console.log(this.name+age+sex); } //將f函數中的this指向固定到對象zs上; f.apply(zs,[23,‘nan‘]); 註意:call和apply的作用一致,區別僅僅在函數實參參數傳遞的方式上; 這個兩個方法的最大作用基本就是用來強制指定函數調用時this的指向;

函數對象的call()、apply() 方法區別