您的位置:首页 > 移动开发

call,apply和bind的区别

2019-07-19 19:12 309 查看
原文链接:http://www.cnblogs.com/ll15888/p/11215283.html

对象.方法();

谁调用该方法this就指向谁、

call()语法:

call()精华:

让一个函数成为指定对象的方法进行调用。

Person.call(document);          //等价于 document.Person();  因此this就指向了括号里的document
//方法.call(对象);

apply():

原理是一样,只是传参的形式不一样

apply是以数组的形式传参(arguments)

 

bind():

有返回值,需要return

let 新函数 = 函数.bind (obj);
//新函数的this。会永久的指向obj,所以就是this被绑定了

 

手动实现一个bind方法:

Function.prototype.bind = function(target){
var fn = this;
return function(){
fn.apply(target , arguments);
}
}

 伪数组变真数组

       Array.prototype.slice.call();
       ES6中Array.from方法

转载于:https://www.cnblogs.com/ll15888/p/11215283.html

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: