我看到Promise.resolve
new
關鍵字的這個「錯誤」調用,但我覺得很奇怪,它的作品!有人可以向我解釋發生了什麼,如果它不同,以任何方式省略new
關鍵字?關鍵字新的靜態方法Promise.resolve
new Promise.resolve(1)
縱觀MDN單證的operator precedence(特別成員訪問,函數調用和新的(沒有參數列表))和new
keyword,應該不是上面扔的錯誤,因爲我承擔表達越來越像這樣評價:
new (Promise.resolve(1))
我想我在這裏缺少的東西(顯而易見)。提前致謝!
注意:使用藍鳥庫2.x的
「本質上正在發生的事情是,Promise.resolve被視爲構造」你的意思是,上面的表達正在評估類似這樣的:'新(Promise.resolve)(1)'? – jwgoh
在JavaScript一切,其核心是一個對象 - 所以'new'不知道'新無極()'和'新的X()'(其中'X = Promise.resolve')之間的差異。所以是的,雖然你的括號使代碼看起來很奇怪,但它們暗示的評估順序是正確的。 –