課程
/前端開發
/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)會返回什么呢
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2017-03-07
這個應該是函數用途的問題了,如果foo()這樣寫,那函數本身就是當做window的方法使用,如果new foo(),就相當于把函數當做一個類,實例化這個類,bind方法只是對于前者來說的,如果new一個實例的話來說bind沒有絲毫作用,相當于是var func = foo; 只不過是把函數指針重新復制了一遍而已,那么傳入bind()的{a : 1}肯定也是沒用的。
2016-12-03
我也搞不懂,func()得到的不是foo().bind({a:1})返回的fBound函數嗎?
2016-10-19
對呀,new了一個實例對象基于func,但func又bind了foo函數,為什么最終出來的是100那1呢?
2016-10-19
因為這里返回的是一個對象,一個func實例對象