js中call、apply、bind的区别

javascript 中,call、apply、bind 都是为了改变某个函数运行时的上下文(context)而存在的,换句话说,就是为了改变函数体内部 this 的指向。

js中call、apply、bind的区别

js中call、apply、bind的区别

call、apply、bind三者的区别,可以通过下面这个例子来看。

var obj = {    x: 81,}; var foo = {    getX: function() {        return this.x;    }} console.log(foo.getX.bind(obj)());  //81console.log(foo.getX.call(obj));    //81console.log(foo.getX.apply(obj));   //81

登录后复制

三个输出的都是81,但是注意看使用 bind() 方法的,他后面多了对括号

也就是说,区别是,当你希望改变上下文环境之后并非立即执行,而是回调执行的时候,使用 bind() 方法。而 apply/call 则会立即执行函数。

总结一下:

apply 、 call 、bind 三者都是用来改变函数的this对象的指向的;

apply 、 call 、bind 三者第一个参数都是this要指向的对象,也就是想指定的上下文;

apply 、 call 、bind 三者都可以利用后续参数传参;

bind 是返回对应函数,便于稍后调用;

apply 、call 则是立即调用 。

本文来自 js教程 栏目,欢迎学习!

以上就是js中call、apply、bind的区别的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2729206.html

(0)
上一篇 2025年3月8日 00:04:41
下一篇 2025年3月5日 17:58:03

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • JavaScript中split和join的区别

    javascript中split和join的区别 1、split()用于分割字符串,返回一个数组 例如: var string=“hello world?name=xiaobai”;var splitString = string.spli…

    2025年3月8日
    200
  • 手动实现js中的call、bind、instanceof

    js中call能够改变this的指向、bind能改变this的指向,并返回一个函数,这是怎么实现的呢?本文将带你一步步实现这些功能,希望对学习JavaScript的朋友有帮助。 前言 现在的前端门槛越来越高,不再是只会写写页面那么简单。模块…

    2025年3月8日
    200
  • JavaScript中的数据类型和类型转换

    本篇文章将为你介绍javascript中的数据类型以及各种数据类型的相互转换,希望对学习javascript的朋友有帮助! JavaScript 中有 6 种不同的数据类型: string(字符串)number(数字)boolean(布尔)…

    2025年3月8日 编程技术
    200
  • JavaScript中字符串转数组的方法是什么

    javascript中字符串转数组的方法是什么 JavaScript中字符串转换成数组用split()方法。 推荐学习:js教程 1、根据特殊字符来转换: 例如字符串 var str = ‘abc,def,ghi’ …

    2025年3月8日
    200
  • JavaScript中map方法怎么用

    javascript中map方法怎么用 1、map() 方法返回一个新数组,新数组中的元素为原始数组中的每个元素调用函数处理后得到的值。 2、map() 方法按照原始数组元素顺序依次处理元素。 注意: map() 不会对空数组进行检测。注意…

    2025年3月8日
    200
  • javascript实现焦点图轮播效果代码示例

    本篇文章通过代码实例来给大家介绍一下javascript实现焦点图轮播效果。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 JS实现焦点图轮播效果 效果图: 立即学习“Java免费学习笔记(深入)”; (不过里面的图片路径…

    2025年3月8日 编程技术
    200
  • javascript诞生于哪年

    javascript诞生于哪年? JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名的,但是它也被用到了很多非浏览器环境中,JavaScript 基于原…

    2025年3月8日
    200
  • javascript中的alert()是什么

    alert()介绍: alert() 方法用于显示带有一条指定消息和一个 确认 按钮的警告框。 语法格式: alert(message) 登录后复制 注意:所有主要浏览器都支持 alert() 方法。 (视频教程推荐:js视频教程) 立即学…

    2025年3月7日
    200
  • typescript和javascript有什么区别

    首先来看一下二者的定义: 什么是javascript? JavaScript 是一种轻量级的解释性脚本语言,无需编译,可嵌入到 HTML 页面中,在浏览器端执行,能够实现浏览器端丰富的交互功能,为用户带来流畅多样的用户体验。 什么是type…

    2025年3月7日
    200
  • javascript获取当前日期

    我们直接来看实例代码: nbsp;html>            Document     //返回时间格式:年-月-日 时:分:秒 function getDateString(date) { // 获取传入的时间,若没有传值则取…

    2025年3月7日
    200

发表回复

登录后才能评论