我知道break
,continue
和return
函数是内置的。
但我看到http://summerofgoto.com/允许写goto <label>
。
我们应该写什么才能调用这样的函数?
N.B:如果我写Missing ; before statement
foo bar;
答案 0 :(得分:2)
你做不到。 "Summerofgoto" / "goto.js"正在使用一个尴尬的黑客来启用这个语句:它逐行解析JS源代码并使用正则表达式来查找“goto xy;”之类的模式。
基本上,"goto.js"它是JavaScript的预处理器,它将您的实际代码(包含标签和goto)重写为常规JS - 它将标签和goto语句替换为函数和函数调用。
但是,你可以做同样的事情。但是,出于性能原因,我强烈建议你不要这样做。“break”等不是函数,它们是作为核心语言一部分的语句。这是完全不同的事情。
答案 1 :(得分:1)
goto.js
是隐身的。它不是以Javascript的形式实际运行脚本,而是读取文档的<script type="text/jsplusgoto">
( not text/javascript
!),然后将标签和getos重写为实际的Javascript。
无论你想做什么,这种技术几乎肯定是矫枉过正的。
答案 2 :(得分:1)
这些是语言的关键词,而不是函数。当想要使用新关键字扩展语言时,通常必须解析包含此类关键字的代码,并且每个新关键字的每次出现都会替换为函数调用或原始语言中可用的其他合适构造。
答案 3 :(得分:0)
我知道
break
,continue
和return
函数是内置的。
break
,continue
和return
根本不是功能。通常goto
被认为是有害的break
,continue
,并且函数中间的任何return
都会被转到。