学校网站建设模板,个人网站建设完整教程,西安公司排行榜,wordpress 发邮件函数JS 函数非继承的call和apply方法 同#xff1a;call apply 主要是用于扩展this指向#xff0c;降低this作用域与函数之间的耦合度#xff1b; 区别#xff1a;传参差异 function.call(this/object,params1,params2,...)
第一个参数为作用域指向参数#xff0c;后边参…JS 函数非继承的call和apply方法 同call apply 主要是用于扩展this指向降低this作用域与函数之间的耦合度 区别传参差异 function.call(this/object,params1,params2,...)
第一个参数为作用域指向参数后边参数如过存在多个必须分开书写
复制代码function.apply(this/object,[array]/arguments)
第一个参数为作用域指向参数后边参数是一个素组或者参数对象
复制代码案列 let nameA;
let b{name:B}
function alertInfo(){alert(this.name);
}
alertInfo.call();//弹框 A,this默认指向windows对象
alertInfo.apply();//弹框 A,this默认指向windows对象
复制代码let nameA;
let b{name:B}
function alertInfo(age){alert(this.nameage);
}
alertInfo.call(b,20);//弹框 B 20,this此时指向b对象
alertInfo.apply(b,20);//弹框 B 20,this此时指向b对象
复制代码let nameA;
let b{name:B}
function alertInfo(age,sex){alert(this.nameage);
}
alertInfo.call(b,20,男);//弹框 B 20 男,this此时指向b对象
alertInfo.apply(b,20,男);//错误该方法接收array或者对象
复制代码JS函数bind方法 该方法可用于创建一个函数实例其this值会被bind绑定至该函数中 案列 let nameA;
let b{name:B}
function alertInfo(){alert(this.name);
}
let initFalertInfo.bind();//创建的函数实例
initF();//弹框 A,this默认指向windows对象
复制代码let nameA;
let b{name:B}
function alertInfo(){alert(this.name);
}
let initFalertInfo.bind(b);//创建的函数实例
initF();弹框 B,this此时指向b对象
复制代码