javascript中的call和apply

javacript中有很多简写的方式,其实我们调用函数的时候比如:
<script>
    function a()
    {
         alert(this);
    }
    a();
    a.call();//以上的两种方式调用是一样的
</script>

弹出的结果this为当前函数属于的对象,那么自然就是window.a.call();这个this自然也就是window,那么当我们这样调用的时候:a.call("lan");那么this就变成了lan,由此我们可以得出,当默认去调用的时候a();这个this为默认的当前方法属于的对象,当用call方式去调用的时候,我们就可以去指定当前this的值了。而apply方式也一样,只不过是a.apply("lan",[1,"hc"]);后面跟着一个数组参数,而call跟的是对应参数a.call("lan",1,"hc");
 

你可能感兴趣的:(JavaScript)