在Javascript/Typescript中,三方括号(即{{{{stuff}}}})是什么意思?
我正在浏览一个我想参与的新项目的代码,作者使用三方括号定义了很多方法,如下所示:在Javascript/Typescript中,三方括号(即{{{{stuff}}}})是什么意思?,javascript,reactjs,typescript,Javascript,Reactjs,Typescript,我正在浏览一个我想参与的新项目的代码,作者使用三方括号定义了很多方法,如下所示: deinitialize() {{{ this.destroyed = true; $(window).off("resize", this.resize as () => void); if (this.resize_debounce) { clearTimeout(this.resize_debounce); this.resize_debounce
deinitialize() {{{
this.destroyed = true;
$(window).off("resize", this.resize as () => void);
if (this.resize_debounce) {
clearTimeout(this.resize_debounce);
this.resize_debounce = null;
}
this.svg.remove();
this.container = null;
}}}
我从来没有见过三方括号(支架?胡子?)以这种方式使用。我使用它们的唯一经验是使用聚合物之类的东西进行数据绑定。这是怎么回事
这个项目是用typescript编写的(我也没有这方面的经验),这个特定的位在一个.tsx文件中。它还使用React,这可能是不相关的。这个功能是来自其中的一个,还是我从未见过的原生JS
源代码如下:
此外,如果措辞不清楚,我表示歉意。我不确定这些是从哪里来的,我也不太熟悉这个项目中使用的语言或FWs。谢谢你的耐心!(和编辑,如果需要:)在javascript语句中,您可以使用任意多对匹配的大括号:
功能测试(){{{
log(“我有很多括号。”);
}}}
test()代码>简单地说,这是因为如果函数中有另一对括号,则很难读取
示例(他们比这更难阅读):
它只是使它更容易(特别是当有多个原型或对象时。多括号使它更容易。您可以使用},},},},},},},},},},},},},},…,使它更容易阅读,如下所示:
function translate(num){{
var translations = {
1: 'one',
2: 'two',
3: 'three',
4: 'four',
5: 'five',
6: 'six'
};
}};
您只能对函数执行此操作,而不能对对象执行此操作。这也适用于方括号;您可以使用“、”、“、”、“、”、“、”……以及其后的任何内容!
多括号可以在不关闭的情况下将其他括号放入其中:
var question = "' "how'd you do that?" said Tom "';
// triple brackets
在那个例子中,它们允许单括号作为撇号,双括号作为语音括号
愉快的编码!AFAICT,它完全不起任何作用。你可以使用任意多对大括号。没什么,只是额外的大括号。在浏览器控制台窗口中试试这个:function foo(){{{{{console.log(1);}}}}};foo()
。这只是额外的大括号。只要大括号匹配,如果你真的想要,你可以使用20个大括号。这不会影响任何事情。但这肯定是不寻常的。这是不寻常的,唯一知道为什么是作者的人。也许这是他们用于内置react组件的约定methods@JamiecAFAICT,它什么也不做
它可能会生成更多的块级作用域,因此可能会浪费CPU资源:)我还注意到,没有一个函数/方法是用“function”或类似于class.prototype.method=blah(){{{}}的东西声明的
。这是一般的typescript还是其他非标准的东西?据我所知,一切都遵循ES6标准或typescript等效标准。@ckersch这只是因为它们是类函数,不使用关键字函数
几个额外的纳秒
,有趣的是,在C中进行快速性能测试hrome,。正在执行额外的{{
大约慢了3倍,但奇怪的是,做了10次之后,速度并没有变慢。事实上,10次似乎比2次快了一点。但当然,获胜者是1次。事实上,放弃这一点,更奇怪的是:)改变顺序,任何先到的都是最快的。因此,这看起来像是Chrome TurboFan在放慢速度,。
var question = "' "how'd you do that?" said Tom "';
// triple brackets