文章詳情頁
javascript - js 面向對象
瀏覽:151日期:2023-05-11 10:46:56
問題描述
請問一下 new 后面的mm函數 加不加括號有什么區別 為什么我得到的結果都是一樣的請資深大神講解一下里面的原理
問題解答
回答1:首先,這種偏向基礎的問題要學會查閱官方文檔文檔中有詳細說明:new foo 等同于 new foo(), 只能用在不傳遞任何參數的情況當然,也不能完全相信文檔,畢竟js的坑。。那差別在哪呢?在這優先級匯總中有詳細說明:new(帶參數列表的)的優先級為19,而new(無參數離別)的優先級為18,所以new foo()會先執行
最后,我記得不久前看到一篇文章講的就是一個比較惡心的面試題,考的就是.,new f(),new f,new f.g(),new f().g()等等的優先級運算問題,可以自己搜一下看看
回答2:參考 MDN
new constructor[([arguments])]
不需要傳遞參數時,括號()是可選項
回答3:var mm = function(val){
this.m = val
}var a = new mm(1) ;console.log(a)var b = new mm ;console.log(b)
回答4:如果構造函數不需要參數,加和不加括號沒有區別。
標簽:
JavaScript
相關文章:
1. android - 美團篩選處篩選條件停靠+條件點擊滑動到頂部。2. list - python 求助3. python3.x - python3.5使用pyinstaller打包報錯找不到libpython3.5mu.so.1.0等文件求解?4. python算法,如何優雅的合并2個列表字典?5. python - def自定義函數的疑惑6. 請教: 關于 python 反斜杠轉義的疑問7. mysql優化 - mysql like語句會導致全表掃描?8. javascript 如何下載一個excel文件 ?9. Python中, 仿照經典代碼實現單例, 卻出現了不是單例的的狀態, 代碼哪里出錯了 ?10. php由5.3升級到5.6后,登錄網站,返回的是php代碼,不是登錄界面,各位大神有知道的嗎?
排行榜
