代码沙箱是为小程序提供的一项功能,用于隔离不同运行环境之间的差异,确保代码在不同平台(IDE、安卓/iOS、审核工具)上表现一致。
设置路径:
小程序在从开发、测试到上线的整个生命周期中,会经历多个运行环境,例如:
这些 JavaScript 运行环境存在差异。例如,
// 在非 WebView 环境中执行会报错 window; // Uncaught ReferenceError: window is not defined
代码沙箱旨在抹平这些环境差异,提供一个更可控、更一致的开发与运行环境。
沙箱提供三种模式:
// 读取这些变量会抛出错误。 console.log(window); // Uncaught ReferenceError: window is not defined
// 错误示例:这将破坏小程序的核心功能 globalThis.createRenderer = () => { /* ... */ };
// a.js console.log(window); // 输出: undefined globalThis.window = { msg: 'my window' }; console.log(window); // 输出: undefined // b.js console.log(window); // 输出: undefined
// a.js globalThis.window = { msg: 'my window' }; // b.js console.log(window); // 输出: { msg: 'my window' }
// 在严格模式下,这不会影响小程序运行 globalThis.createRenderer = () => {};
// 不推荐的方式 var global = new Function("return this")(); var global = (function() { return this })(); // 推荐 globalThis;