call和apply区别/bind的使用
程序员文章站
2024-01-29 19:23:28
...
1.构造函数call/apply:
//构造函数
function User(name){
this.name=name
}
// let obj=new user('yang');
// console.log(obj);
let UnameObj={
age:12,
height:150
}
User.call(UnameObj,'赵四_刘能——多行不义必自毙');
User.apply(UnameObj,['赵四_刘能——多行不义必自毙']);
console.log(UnameObj);/* {age: 12, height: 150, name: "赵四_刘能——多行不义必自毙"} */
call接受的是字符串参数, apply接受的数组参数
2.构造函数的继承:
//构造函数的继承
function requestFn(){
this.get=(params)=>{
return 'www.baidu.com?'+this.url+'/'+Object.keys(params).map(v=>`${v}=${params[v]}`).join('&')
}
}
function getUser(){
this.url='users/lists';
requestFn.call(this)
}
function getArticle(){
this.url='article/lists';
requestFn.call(this)
}
let a=new getUser();
let b=new getArticle;
console.log(a.get({user:'yang',age:12}));
console.log(b.get({user:'story',list:'200',page:12,size:'10'}));
3.bind的使用:
//bind使用
function requestFn(name,age){
console.log(name,age)//
return this.url
}
let func=requestFn.bind({url:'baobao.com'},'yang');//不立即执行
console.log(func('zhangsan',12))/*
yang zhangsan
dd.html:57 baobao.com */
/*
*参数是先从bind函数后面开始找 如果找到了就传参 和调用的时候链接起来 yang第一个参数,zhangsan 是第二个参数
*参数在哪里传递都行 可以调用的时候可以bind定义的时候 都有以bind定义时候为准
*/
*bind不立即执行 只是定义返回了新的函数
*参数是先从bind函数后面开始找 如果找到了就传参 和调用的时候链接起来 yang第一个参数,zhangsan 是第二个参数
*参数在哪里传递都行 可以调用的时候可以bind定义的时候 都有以bind定义时候为准
上一篇: 线程知识点
推荐阅读
-
call和apply区别/bind的使用
-
INSERT INTO 与 SELECT INTO 的区别和使用
-
vue3 watch和watchEffect的使用以及有哪些区别
-
register_globals PHP中register_globals参数为OFF和ON的区别(register_globals 使用详解)
-
javascript中的call,apply,bind方法实例介绍
-
Javascript 中的 call 和 apply使用介绍_javascript技巧
-
记一次MySql单列索引和联合索引的使用区别
-
Javascript函数的call和apply用法介绍
-
关于javascript中call()和apply()方法的总结
-
深入理解ob_flush和flush的区别(ob_flush()与flush()使用方法)_PHP