繁体   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