为了账号安全,请及时绑定邮箱和手机立即绑定

为什么最后new func返回的是b:100??????????

为什么最后new func返回的是b:100??????????

http://img1.sycdn.imooc.com//58063b210001d7c307260399.jpg

正在回答

4 回答

这个应该是函数用途的问题了,如果foo()这样写,那函数本身就是当做window的方法使用,如果new foo(),就相当于把函数当做一个类,实例化这个类,bind方法只是对于前者来说的,如果new一个实例的话来说bind没有丝毫作用,相当于是var func = foo; 只不过是把函数指针重新复制了一遍而已,那么传入bind()的{a : 1}肯定也是没用的。

0 回复 有任何疑惑可以回复我~

我也搞不懂,func()得到的不是foo().bind({a:1})返回的fBound函数吗?

0 回复 有任何疑惑可以回复我~

对呀,new了一个实例对象基于func,但func又bind了foo函数,为什么最终出来的是100那1呢?

0 回复 有任何疑惑可以回复我~

因为这里返回的是一个对象,一个func实例对象

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么最后new func返回的是b:100??????????

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信