课程
/前端开发
/JavaScript
/JavaScript深入浅出
为什么最后new func返回的是b:100??????????
2016-10-18
源自:JavaScript深入浅出 6-4
正在回答
这个应该是函数用途的问题了,如果foo()这样写,那函数本身就是当做window的方法使用,如果new foo(),就相当于把函数当做一个类,实例化这个类,bind方法只是对于前者来说的,如果new一个实例的话来说bind没有丝毫作用,相当于是var func = foo; 只不过是把函数指针重新复制了一遍而已,那么传入bind()的{a : 1}肯定也是没用的。
我也搞不懂,func()得到的不是foo().bind({a:1})返回的fBound函数吗?
对呀,new了一个实例对象基于func,但func又bind了foo函数,为什么最终出来的是100那1呢?
因为这里返回的是一个对象,一个func实例对象
举报
由浅入深学习JS语言特性,且解析JS常见误区,从入门到掌握
3 回答关于new了之后的返回值情况
1 回答为什么typeof(function(){ }) 返回的是function
3 回答var func = new Function("console.log(typeof i);")
2 回答new Func(1,2)这是new一个什么? 这样我再浏览器打出来不合法啊
1 回答假如此处man.age=100是赋值成功的,那console.log(man.age)会返回什么呢