在默认的ng new应用程序中,我使用DevTools创建了一个JIT和一个AOT项目,以比较Chrome中的文件大小、捆绑、检查等。
然后我处理了这两个文件,并检查了Chrome DevTools - JIT: ng served AOT: ng served-aot中的文件。
对于JIT版本,ngFactory文件都是由JIT编译器编译的(对于AOT,这些确切的函数位于预编译的主包中)。
在应用程序的JIT版本中,ng类工厂是在内存文件上说中创建的。
JIT编译在内存中生成这些基本不可见的NgFactories。
当我在DevTools中使用JIT应用程序时(见屏幕截图),我可以看到JIT编译的工厂文件在no域下。这些实际上是内存中的,还是编译器生成临时文件?

发布于 2017-03-18 16:50:15
当您运行JIT编译时,它们在浏览器内存中。
角通过new Function()生成它们
例如:
var expression = `
function Yurzui() {
this.param1 = name;
}
Yurzui.prototype.hello = function() {
return 'Hello ' + this.param1;
}
return Yurzui;
//# sourceURL=/yurzui/say-hello/my.factory.js
`;
var func = new Function('name', expression);
var clazz = func('Some name');
alert((new clazz()).hello());

https://stackoverflow.com/questions/42876915
复制相似问题