javascript - js 面向?qū)ο?/h1>
瀏覽:129日期: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. docker - 各位電腦上有多少個(gè)容器啊?容器一多,自己都搞混了,咋辦呢?2. java - spring boot 如何打包成asp.net core 那種獨(dú)立應(yīng)用?3. java - 在用戶不登錄的情況下,用戶如何添加保存到購(gòu)物車(chē)?4. datetime - Python如何獲取當(dāng)前時(shí)間5. docker start -a dockername 老是卡住,什么情況?6. javascript - nginx反向代理靜態(tài)資源403錯(cuò)誤?7. docker網(wǎng)絡(luò)端口映射,沒(méi)有方便點(diǎn)的操作方法么?8. 安全性測(cè)試 - nodejs中如何防m(xù)ySQL注入9. javascript - 關(guān)于apply()與call()的問(wèn)題10. python - 調(diào)用api輸出頁(yè)面,會(huì)有標(biāo)簽出現(xiàn),請(qǐng)問(wèn)如何清掉?
問(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ū)別。
