JavaScript 中 call()、apply()、bind() 的用法 ...

哎呀,小伙子,你不知道JavaScript中call()、apply()、bind()这三个小家伙都有啥用吗?那我经验丰富的程序员亲自来给你讲解一下吧。

看,这三个小家伙都是用于改变JavaScript函数中this指针的引用的,让它们指向不同的对象。其中,call()和apply()的作用是直接改变this的引用并执行函数,bind()则是将函数与新的this绑定起来返回一个新的函数,以便稍后调用。看明白了吧?

下面,我们就来看一下这三个小家伙的用法吧。

#1. call()的用法

小伙子,假设有一个对象和一个函数:

```JavaScript

var obj = {name: '小明'};

function greet(){

console.log('你好,' + this.name);

}

```

如果我们要将greet()中的this引用变成obj对象,就要用到call()。简单的调用方式是这样的:

```JavaScript

greet.call(obj);

```

#2. apply()的用法

小伙子,apply()和call()很相似,只是传参数的方式不一样。如果有一个对象和一个函数:

```JavaScript

var obj = {name: '小明'};

function greet(age, gender){

console.log('你好,我叫'+ this.name + ',我今年' + age + '岁,我是' + gender + '的');

}

```

则可以这样调用:

```JavaScript

greet.apply(obj, [18, '男']);

```

这里传递的第二个参数是一个数组,包含了函数所需的所有参数。

#3. bind()的用法

小伙子,我们来看看bind()的用法吧。假设有一个对象和一个函数:

```JavaScript

var obj = {name: '小明'};

function greet(){

console.log('你好,' + this.name);

}

```

可以这样使用bind():

```JavaScript

var newGreet = greet.bind(obj);

newGreet();

```

这里,我们将原来的greet()函数与obj对象绑定在一起,返回一个新的函数newGreet,稍后直接调用newGreet()就可以了。

好的,小伙子,以上就是call()、apply()、bind()这三个小家伙的用法。你牢记了没有?快去试试啊! www.0574web.net 宁波海美seo网络优化公司 是网页设计制作,网站优化,企业关键词排名,网络营销知识和开发爱好者的一站式目的地,提供丰富的信息、资源和工具来帮助用户创建令人惊叹的实用网站。 该平台致力于提供实用、相关和最新的内容,这使其成为初学者和经验丰富的专业人士的宝贵资源。

点赞(21) 打赏

声明本文内容来自网络,若涉及侵权,请联系我们删除! 投稿需知:请以word形式发送至邮箱18067275213@163.com

评论列表 共有 3 条评论

過路的馬甲 1年前 回复TA

好一句为祖国而赛,好样的~看得我热血沸腾

啦啦猪娱乐 1年前 回复TA

博客站点相对要容易被收录一点吧?但是没看到你的下文呢?

榛子图片 1年前 回复TA

我也纳闷,我的新浪博客近期没有更新,一直可以打开,看到这个干货文章,就到新浪博客发布下,结果悲剧了…,点击发布后,新浪博客立即出现提示:“很抱歉,此账号出现异常,暂时无法访问。”又仔细看了一遍这篇文章,应该是里面包含:弹窗、app等敏感词,导致新浪博客被封。我那的浪微博和博客是关联的,现在微博上最近的更新就是在博客转载的这篇文章链接,不过博客被封了,打不开了。

立即
投稿
发表
评论
返回
顶部