JS之bind浅析及应用场景

JavaScript019

JS之bind浅析及应用场景,第1张

fn.bind(obj, args)

bind() 方法会创建一个函数,该函数的 this 指向了传入的第一个参数,当 bind() 的参数为空时, this 指向全局对象。如浏览器中的 window

因为 js 是一门 Duck typing 语言,所以我们可以通过 bind 实现一些共有方法。

有的时候我们需要针对特定的 this 调用某些方法。写起来比较麻烦,这个时候就可以使用 bind 创建一个 shortcut 方便调用。

bind 也可以绑定构造函数,但是当执行生成的函数时,会忽略this指向,即使在绑定时已经对其赋值。

,bind(),调用一个新创建的函数,其新函数的this值会被绑定到给定bind()的第一个参数。 

es6,参数表达,传参

bind(this),生成的新的updateChangedOptionAndMask,会把本身this的updateChangedOptionAndMask方法覆盖掉吗

不会覆盖,注入到this对象是一个新的引用,不是同一个东西,注入是一个未知的引用不能直接通过对象.的方法是使用,必须将他付给一个新的方法,才能使用。

var newfunc=func.bind(this,1,2)

生成一个新的方法,却不能想普通函数的参数传递调用他,而是将他们的参数累积起来。