call与apply

let lisi={
    name:"李四"
};

let wangwu={
    name:"王五"
};
function User(web,url){
    console.log(web+url+this.name);
}

//都是立即执行的
User.call(lisi,"hdr","hdr.com");
User.apply(wangwu,["hdr","hdr.com"]);//用的是数组

<button>houdunren</button>
<button>hscms</button>


function
show(){ alert(this.innerHTML); } let btn=document.querySelectorAll("button"); for(let i=0;i<btn.length;i++){ btn[i].addEventListener("click",event=>{ // show.apply(event.target);//event.target指向当前的按钮对象 show.call(event.target);//event.target指向当前的按钮对象 }); }

    let arr=[1,2,3,4,5];
    console.log(Math.max(...arr));
    console.log(Math.max.apply(Math,arr));
 
function Request(){
    this.get=function(params){
        let str=Object.keys(params).map(k=>`${k}=${params[k]}`).join("&");
        let url=`https://baidu.com>${this.url}/${str}`;
        // console.log(url+"<hr>");
        document.write(url+"<hr>")
    }
}
function Article(){
    this.url="article/lists";
    Request.call(this);//call,此处没有传入参数
}
let artile=new Article();
artile.get({id:1,cat:"js"});

function User(){
    this.url="user/lists";
    Request.call(this);//call,此处没有传入参数
}

let user=new User();
user.get({id:2,role:"admin"});

let user1=new User();
user1.get({id:2,role:"admin"});
原文地址:https://www.cnblogs.com/yyy1234/p/15820214.html