javascript - js 面向?qū)ο?/h1>
瀏覽:138日期:2023-05-11 10:46:56
問(wèn)題描述
![javascript - js 面向?qū)ο? src=]()
請(qǐng)問(wèn)一下 new 后面的mm函數(shù) 加不加括號(hào)有什么區(qū)別 為什么我得到的結(jié)果都是一樣的請(qǐng)資深大神講解一下里面的原理
問(wèn)題解答
回答1:首先,這種偏向基礎(chǔ)的問(wèn)題要學(xué)會(huì)查閱官方文檔文檔中有詳細(xì)說(shuō)明:new foo 等同于 new foo(), 只能用在不傳遞任何參數(shù)的情況當(dāng)然,也不能完全相信文檔,畢竟js的坑。。那差別在哪呢?在這優(yōu)先級(jí)匯總中有詳細(xì)說(shuō)明:new(帶參數(shù)列表的)的優(yōu)先級(jí)為19,而new(無(wú)參數(shù)離別)的優(yōu)先級(jí)為18,所以new foo()會(huì)先執(zhí)行
最后,我記得不久前看到一篇文章講的就是一個(gè)比較惡心的面試題,考的就是.,new f(),new f,new f.g(),new f().g()等等的優(yōu)先級(jí)運(yùn)算問(wèn)題,可以自己搜一下看看
回答2:參考 MDN
new constructor[([arguments])]
不需要傳遞參數(shù)時(shí),括號(hào)()是可選項(xiàng)
回答3:var mm = function(val){
this.m = val
}var a = new mm(1) ;console.log(a)var b = new mm ;console.log(b)
回答4:如果構(gòu)造函數(shù)不需要參數(shù),加和不加括號(hào)沒(méi)有區(qū)別。
標(biāo)簽:
JavaScript
上一條:javascript - JS如何判斷當(dāng)前時(shí)間 是否在 每個(gè)月的 一號(hào) 到 十號(hào)之內(nèi)下一條:javascript - js數(shù)組累加問(wèn)題
相關(guān)文章:
1. javascript - 在靜態(tài)頁(yè)面上用load 引入的頁(yè)面文件問(wèn)題?2. javascript - webpack打包后的bundlejs文件代碼不知道什么意思.3. Android的webView如何實(shí)現(xiàn)網(wǎng)頁(yè) 錄音功能?4. node.js - Linux(CentOs)下hexo生成文章被killed5. android - RxJavar用什么操作符可以使數(shù)據(jù)每隔一段時(shí)間取出一個(gè)6. css - 關(guān)于ul的布局7. html - 哪些情況下float會(huì)失效?8. javascript - vue組件通過(guò)eventBus通信時(shí),報(bào)錯(cuò)a.$on is not a function9. java - oracle對(duì)漢字字段按照拼音排序的函數(shù)和sql語(yǔ)句是什么?10. css - 如何使用 vue transition 實(shí)現(xiàn) ios 按鈕一樣的平滑切換效果
問(wèn)題描述
請(qǐng)問(wèn)一下 new 后面的mm函數(shù) 加不加括號(hào)有什么區(qū)別 為什么我得到的結(jié)果都是一樣的請(qǐng)資深大神講解一下里面的原理
問(wèn)題解答
回答1:首先,這種偏向基礎(chǔ)的問(wèn)題要學(xué)會(huì)查閱官方文檔文檔中有詳細(xì)說(shuō)明:new foo 等同于 new foo(), 只能用在不傳遞任何參數(shù)的情況當(dāng)然,也不能完全相信文檔,畢竟js的坑。。那差別在哪呢?在這優(yōu)先級(jí)匯總中有詳細(xì)說(shuō)明:new(帶參數(shù)列表的)的優(yōu)先級(jí)為19,而new(無(wú)參數(shù)離別)的優(yōu)先級(jí)為18,所以new foo()會(huì)先執(zhí)行
最后,我記得不久前看到一篇文章講的就是一個(gè)比較惡心的面試題,考的就是.,new f(),new f,new f.g(),new f().g()等等的優(yōu)先級(jí)運(yùn)算問(wèn)題,可以自己搜一下看看
回答2:參考 MDN
new constructor[([arguments])]
不需要傳遞參數(shù)時(shí),括號(hào)()是可選項(xiàng)
回答3:var mm = function(val){
this.m = val
}var a = new mm(1) ;console.log(a)var b = new mm ;console.log(b)
回答4:如果構(gòu)造函數(shù)不需要參數(shù),加和不加括號(hào)沒(méi)有區(qū)別。
