看到这个写法,当时有些懵,弄了半天,才找到了一个合理的解释。想着,还是Object.prototype.toString.call()这个好理解一些。
bind()方法主要就是将函数绑定到某个对象,bind()会创建一个函数,函数体内的this对象的值会被绑定到传入bind()中的第一个参数的值,例如:f.bind(obj),实际上可以理解为obj.f(),这时f函数体内的this自然指向的是obj
所以Function.prototype.call.bind(Object.prototype.toString())与Object.prototype.toString.call()其实是等价的。