一、bind的作用
|--案例:

|--错误分析:write方法是document对象下的,将write方法赋值给变量dw,dw将成为window下的一个方法,
调用dw相当于window.dw,此时dw里的this已经指向了window而不是document。所以报错。
|--如何解决:通过bind来改变this的指向(指向document)

二、bind的使用之绑定函数
|--最基本的用法:创建一个函数(返回值:新函数),使新函数永久绑定this为指定对象(第一个参数),如果不做bind处理,函数会丢失原来的对象。
|--案例:

三、bind的使用之预定义参数
|--可以为新函数预定义参数,调用的时候传入其他参数即可。
|--案例:

四、bind的使用之和setTimeout一起使用
|--示例:

|--解决办法:

五、bind和构造函数一起使用
|--构造函数1.bind(null/{})返回一个新的构造函数,两个构造函数共用一个原型。
|--示例:

六、使用bind将类数组转为数组
|--示例:使用call和bind

七、自己实现bind函数
|--原因:一些低版本浏览器不支持bind方法,这时就要自己实现bind方法。
|--实现:

八、带参数的bind实现
|--示例:

网友评论