当前位置: IT培训 > HTML5培训 > 前端开发 > JS > JavaScript关于bind函数陷阱
JavaScript关于bind函数陷阱 时间:2017-08-17     来源:JS开发小赢家

bind函数将一本地地址与一套接口捆绑。本函数适用于未连接的数据报或流类套接口,在connect()或listen()调用前使用。当用socket()创建套接口后,它便存在于一个名字空间(地址族)中,但并未赋名。bind()函数通过给一个未命名套接口分配一个本地名字来为套接口建立本地捆绑(主机地址/端口号)。

下面这段代码会输出什么结果?

干货:JavaScript关于bind函数陷阱

如果你说程序会崩溃,并且报错:Cannot read property ‘name’ of undefined。

1、因为第16行的greet没有在正确的环境下执行。当然,也有很多方法解决这个BUG!

使用bind函数来解决问题:

这样会确保greet会被Foo的实例调用,而不是局部的函数的this.

2、如果你想要greet永远不会绑定到错误的作用域,你可以在构造函数里面使用bind来绑 。

干货:JavaScript关于bind函数陷阱

3、你也可以使用箭头函数(=>)来防止作用域被修改。

X