老生常谈:call,apply,bind的使用及区别

Paste_Image.png

由下面的图片我们可以看到:xiaoming和小红两个对象的say方法是完全一样的,唯一不同是函数里边的this指向不同(上下文环境不同),为避免重复我们使用apply,如下图:

Paste_Image.png

apply方法使xiaohong可以直接调用xiaoming的say方法,并且say方法中的this指向xiaohong
apply和call并没有多大的区别,只是函数传参方式不同,apply是以数组形式传参而call是直接传如下图

Paste_Image.png

bind是指将第一个参数作为this传进去,好像跟上边一样哈,那我们看看:

Paste_Image.png

没错,由上图我们看出,bind方法返回的是bar方法,需要我们去调用,而call和apply直接返回值了
总结,反正我是弄清楚了,ok

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容