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

来源:6-4 [JavaScript]函数属性arguments

勇闯极限

2016-10-18 23:09

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

http://img.mukewang.com/58063b210001d7c307260399.jpg

写回答 关注

4回答

  • testname
    2017-03-07 15:22:34

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

  • qq_快乐小子_3
    2016-12-03 10:56:58

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

  • 勇闯极限
    2016-10-19 21:59:07

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

  • lym_0001
    2016-10-19 12:44:26

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

JavaScript深入浅出

由浅入深学习JS语言特性,且解析JS常见误区,从入门到掌握

281100 学习 · 1020 问题

查看课程

相似问题