Maj*_*our 17 javascript compiler-construction jquery
当我看到这个问题时,我认为如果可以编写jQuery 编译器会有所帮助.现在,通过编译器,我的意思是接受jQuery代码并输出最终执行的原始javascript代码.
这就是我对jQuery代码块执行的看法:
我知道这是一个非常简化的模型,它可能会复杂得多,但我认为复杂性减少到第2步和第3步重复,不同的原始js函数被调用,每次都用全部或部分参数/以前的结果.
如果我们订阅该模型,那么我们可能会提出使jQuery函数执行双重任务的方法:
raw_function(passed_params)我做了一些错误的假设会让这个不可能吗?有关Firebug的探查器如何尝试获取函数名称的任何想法?可以在这里使用吗?
编辑
我在想的是制作一个带输入/输出的黑盒子:
normal jquery code→ [BB] →code you'd write if you used no library
谢谢你们!
我想你的意思是:如果你写的话
var myId = $("#myId")
Run Code Online (Sandbox Code Playgroud)
它将被转换为
var myId = document.getElementById("myId")
Run Code Online (Sandbox Code Playgroud)
我认为它可能,但问题是,jQuery函数返回jQuery对象,所以在上面的例子中,第一个myId将是一个jQuery对象,第二个将是一个节点对象(我认为)将影响需要的其他函数稍后在编译后在代码中使用它.特别是如果他们被链接
其次,您必须确保转换实际上具有性能优势.但是,如果您了解所有这些并且可以相应地计划代码,我认为这是可能的
\n\n\n现在,我所说的编译器是指接受 jQuery 代码并输出最终执行的原始 JavaScript 代码的东西。
\n
我认为这个陈述可能表明你出了什么问题。
\n\njQuery 是一个用 Javascript 语言实现的库。jQuery 是一种与 Javascript 分离的语言。jQuery 是 Javascript 代码的集合,您可以使用它来简化 Javascript 开发。这都是 Javascript。将“jQuery 代码”转换为“原始 Javascript”的“jQuery 编译器”将毫无用处,因为 jQuery是原始 Javascript。
\n\n您可能真正想要的是一个Javascript编译器。那样的话,当然是有可能的。事实上,现在的一些网络浏览器实际上以某种字节码的形式对 Javascript 代码进行“编译”,以提高性能。但涉及 Javascript 的开发工作流程通常不涉及某种编译器工具。
\n\n显然你真正想要的是将 jQuery 代码“内联”到你的代码中,有点像这样:
\n\nvar myfoo = $(\'#foo\');\xe2\x86\x92var myfoo = document.getElementById(\'foo\');
这实际上是 C++ 编译器为优化性能所做的事情,但 Javascript 不是 C++,因此它不适用于此处。
\n\n我不明白这有什么用。jQuery 的重点是通过提供像$()函数一样的一致接口来简化 Javascript 开发。通过执行这个“内联”过程,您会生成更难以阅读和维护的代码。
为什么要添加额外的步骤?为什么不直接将应用程序 javascript 代码和 jQuery 库交付给浏览器呢?为什么要添加一个额外的步骤,涉及一个额外的工具来将 Javascript 转换为 Javascript,而这不会提供任何实质性的额外好处?
\n| 归档时间: |
|
| 查看次数: |
6635 次 |
| 最近记录: |