rottenpen / blog

日常记录 blog,内容不限于前端,博文在 issue https://github.com/rottenpen/blog/issues
7 stars 0 forks source link

在 js 里如何使用 call() , apply() 和 bind() #15

Closed rottenpen closed 5 years ago

rottenpen commented 5 years ago

前言

这篇文章里,我们会通过一些简单的案例来说明 call(),apply() 和 bind() 三种方法的区别。函数也是JavaScript中的对象,所以就有了这3个方法来控制函数的调用。call() 和 apply() 是 ECMAScript 3的语法,而 bind() 则是 ECMAScript 5才加入到 js 的大家庭里。

用法

//Demo with javascript .call()

var obj = {name:"rottenpen"};

var greeting = function(a,b,c){
    return "welcome "+this.name+" to "+a+" "+b+" in "+c;
};

console.log(greeting.call(obj,"aaa","bbb","guangzhou"));
// 输出 welcome rottenpen to aaa bbb in guangzhou