gpt4 book ai didi

javascript - 如何防止 JS 代码被编译器解析/评估?

转载 作者:行者123 更新时间:2023-11-30 00:01:58 26 4
gpt4 key购买 nike

我有一个模块,里面有很多 JS 代码。模块是这样创建的:

(function (root, factory) {
// root === window
root.MyModuleName = factory();
})(this, function () {
'use strict';
var MyModuleName = function() {
// A lot of code here that I don't want to be parsed or evaluated
// until MyModuleName constructor is executed.
//
// For example:
// var a = { d: 123 };
// var b = function() { return 45; };
// this.someMethod = function() { b() + a.d };
// ...
};
return MyModuleName;
});

所有方法和属性都在 MyModuleName 闭包中并且(我认为)它们应该只在 MyModuleName() 执行后被解析。

在用户点击某个按钮后,我创建了一个 MyModuleName 的实例并执行了一些方法:

someButton.onclick = function() {
// I want compiler to parse and evaluate JS code only here
var myModule = new MyModuleName();
console.log(myModule.someMethod());
};

即使 MyModuleName 构造函数仅在单击后才执行(),但在加载 JS 文件时会评估其中的代码(我可以在 Chrome 开发工具时间轴中看到它)。

如何确保编译器仅在点击后才评估代码,而不是在 JS 文件加载后?

最佳答案

你不能。 JS 引擎必须评估代码以创建函数,然后才能将函数分配到任何地方。

关于javascript - 如何防止 JS 代码被编译器解析/评估?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40105070/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com