[英]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
这会为我抛出语法错误(“|”上的“意外令牌”)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.