深入浅出 妙用Javascript中apply、call、bind

来源:互联网 发布:国外js特效网站 编辑:程序博客网 时间:2024/04/28 19:12
apply 、 call 、bind 三者都是用来改变函数的this对象的指向的;apply 、 call 、bind 三者第一个参数都是this要指向的对象,也就是想指定的上下文;apply 、 call 、bind 三者都可以利用后续参数传参;bind 是返回对应函数,便于稍后调用;apply 、call 则是立即调用 。
<!DOCTYPE html>
<html lang="en"><head>    <meta charset="UTF-8">    <title>Title</title></head><body><script>    <!--apply call bind 在js中都可以改变上下文-->    function name(){    }    name.prototype={        job:"web",        can:function () {            console.log("他会"+this.job);        }    }    var app=new name();    app.can();    /*如果我们有一个方法是banner={job:"js"}这时我们的apply和call就派上用场了*/    banner={        job:"js"    }    app.can.call(banner);    app.can.apply(banner);    var a=['js','angular2'];    var b=['css','html','css3','html5'];    Array.prototype.push.apply(a,b);    console.log(a);/*判断是否是数组*/   function isArray(obj){       return Object.prototype.toString.call(obj)==='[object Array]'    }    console.log(isArray(b));    var c=function(){        console.log(this.color);    }    var obj={        color:"yellow"    }    c();    var sts=c.bind(obj);    sts();</script></body></html>
0 0
原创粉丝点击