*JS核心:callapply和bind
Posted jacksplwxy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了*JS核心:callapply和bind相关的知识,希望对你有一定的参考价值。
1.
var func=function(a,b,c){ console.log([a,b,c]); }; func.apply(null,[1,2,3]); //[1,2,3] func.call(null,1,2,3); //[1,2,3] func.bind(null,1,2,3); //无输出 func.bind(null,1,2,3)(); //[1,2,3] func.bind(null)(2,3,4) //[2,3,4]
解析:
当使用apply或call时,如果我们传入第一个参数为null,函数体内的this会指向默认的宿主对象,在浏览器中则是window。
apply和call只是参数传入形式不同,其他一样。但bind则不同:前面的调用call或apply时,函数直接运行,但bind不会运行,而是返回一个绑定上下文的函数并且this永远的指向bind括号中的第一个参数。
2.
call、apply和bind主要有2个作用:
①改变this的指向;
②借用其他对象的方法
以上是关于*JS核心:callapply和bind的主要内容,如果未能解决你的问题,请参考以下文章