什么是函数绑定_javascript中bind方法如何使用?

admin 百科 8
函数绑定是通过bind方法将函数的this永久固定为指定对象并预设部分参数,返回新函数而不立即执行;常用于事件回调、定时器及参数预填充,与call/apply的立即执行不同,且不支持箭头函数。

什么是函数绑定_javascript中bind方法如何使用?-第1张图片-佛山资讯网

函数绑定指的是让一个函数的 this 指向固定为某个对象,不管它后续怎么被调用。JavaScript 中的 bind 方法就是专门干这事的:它不执行函数,而是返回一个新函数,这个新函数调用时 this 永远绑定你指定的对象。

bind 的基本用法

语法很简单:fn.bind(thisArg, arg1, arg2, ...)。第一个参数是将来调用时的 this 值,后面的参数是预先“填好”的实参(也叫预设参数或柯里化)。

  • thisArg 可以是任意值,比如对象、nullundefined,甚至原始值(但会被包装成对应对象)
  • 如果原函数有多个参数,bind 后再调用时传的参数会追加在预设参数之后
  • bind 返回的函数不能再次用 bind 改变 this(已被锁定),也不能用 call/apply 覆盖

常见使用场景

最典型的是事件回调和定时器中避免 this 丢失:

  • 给 DOM 元素绑定事件时,方法里的 this 默认不是类实例,用 bind(this) 就能保持指向
  • setTimeout(obj.method, 100) 会导致 method 内部 this 变成 windowundefined,改写成 setTimeout(obj.method.bind(obj), 100) 就行
  • 做参数预填充,比如 const add5 = add.bind(null, 5),之后调用 add5(3) 相当于 add(5, 3)

bind 和 call/apply 的区别

callapply 是立即执行函数,并临时指定 thisbind 不执行,只返回绑定后的新函数,适合“延迟调用”或“复用绑定逻辑”。

标签: javascript java app win 区别

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~