第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

下面的代碼片段是什么意思?

下面的代碼片段是什么意思?

夢里花落0921 2023-04-01 17:23:36
我試圖理解語法,但對我來說這一切都是新的。我在匿名函數(shù)中看到一個匿名函數(shù),后面跟著一個逗號和一個類。請幫助我理解語法..e => (function(e) {if ("function" != typeof e.prototype.dispatchEvent) throw new TypeError(`${e} must be an Element type`)}(e), class extends e {[i](e, t) {    n.getService(this).navigateTo(e, {        replace: t    })} [a](e) {    return n.getService(this).generateUrl(e)}})
查看完整描述

1 回答

?
Helenr

TA貢獻1780條經(jīng)驗 獲得超4個贊

首先,這是無效的語法:NavigationMixin后面應(yīng)該跟一個等號才有效。


其次,這段代碼引用了未定義的變量a和i.


讓我們分解一下:


NavigationMixin是一個接受一個參數(shù)的函數(shù):e,它應(yīng)該是一個類/構(gòu)造函數(shù),它是或繼承自Element. 該函數(shù)是一個箭頭函數(shù),它使用箭頭表達(dá)式語法,這意味著沒有塊,也沒有返回語句。后面的表達(dá)式=>求值為返回值。


表達(dá)式由逗號運算符組成。該運算符的左操作數(shù)是:


(function(e) {

  if ("function" != typeof e.prototype.dispatchEvent) throw new TypeError(`${e} must be an Element type`)

}(e)

這就是所謂的“立即調(diào)用的函數(shù)表達(dá)式”(IIFE)。匿名函數(shù)以 as 參數(shù)執(zhí)行e,它顯然用于對e. 該函數(shù)不返回任何內(nèi)容,也沒有用。它的唯一目的是在驗證未通過時觸發(fā)錯誤。


然后我們轉(zhuǎn)到逗號運算符的第二個操作數(shù):


class extends e {

  [i](e, t) {

    n.getService(this).navigateTo(e, {

        replace: t

    })

  } 

  [a](e) {

    return n.getService(this).generateUrl(e)

  }

})

這是一個類表達(dá)式。它在原型上定義了兩個成員。這些成員具有計算名稱,這就是它們具有語法的原因[]: 的值i確定第一個成員的名稱,其值是一個函數(shù):


(e, t) {

  n.getService(this).navigateTo(e, {

      replace: t

  })

}

原型上的第二個成員也有一個動態(tài)名稱,由 的值決定a,它也是一個函數(shù)。


最后,逗號運算符計算兩個操作數(shù),忽略第一個的值,返回第二個的值。因此,整個函數(shù)——在執(zhí)行時——返回一個類,該類使用兩個方法擴展給定的類,這兩個方法的名稱由兩個變量a和動態(tài)確定i。


該代碼沒有提供有關(guān)這兩個變量的線索。


查看完整回答
反對 回復(fù) 2023-04-01
  • 1 回答
  • 0 關(guān)注
  • 148 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號