簡體   English   中英

什么<|在這段代碼意味着什么

[英]What does <| in this code mean?

function foo() {}
var bar = foo <| function() {};

這是我第一次見到這樣的東西。 什么<| 意思?

資料來源: https//github.com/allenwb/ESnext-experiments/blob/master/ST80collections-exp1.js

現在您已經發布了指向源的鏈接,您可以在文件頂部的注釋中看到它的確切內容( 第36行 ):

<| operator - 定義文字的[[Prototype]] ...

對於這些例子<| 與函數表達式一起使用時,將作為函數“prototype”屬性的值創建的對象的[[Prototype]]設置為LHS對象的“prototype”屬性的值。 這是設置函數對象本身的[[Prototype]]的補充。 換句話說,它構建將函數和function.prototype的[[Prototype]]設置為可能不同的值。

更新:我剛剛記得這個問題,因為我遇到了這個“文字[[Prototype]]運算符”完整ECMAScript Harmony提案 這里有更多的信息,而不是上面的引文,所以值得一讀。

看起來應該是這樣

function foo() {}
var bar = foo || function() {};

如果定義了foo,則將foo分配給bar,否則分配空函數。

關於您之后發布的鏈接,它仍然無效Javascript。 項目的自述文件解釋了文件的用途。

該項目包含各種語言擴展的示例文件,這些文件正在考慮包含在下一版的ECMA語言規范中。 示例的目的是測試所提議特征的效用,可寫性和可讀性。 沒有任何保證,任何這些實際上將被納入該語言。

建議功能的描述包含您粘貼到問題中的代碼行。

the <| operator -- defines the [[Prototype]] of a literal

/* Quote that James posted */

function foo() {};
const bar = foo <| function() {};

Object.getPrototypeOf(bar)===foo; //true
Object.getPrototypeOf(bar.prototype)===foo.prototype;  //true

這會為我拋出語法錯誤(“|”上的“意外令牌”)

有關javascript運算符的完整列表,請轉到此處

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM