vscode插件new Function 返回null
时间: 2024-09-23 08:17:02 浏览: 38
Visual Studio Code (VSCode) 插件中,`new Function()` 是一种创建匿名函数的方式。然而,如果在代码里直接使用 `new Function()` 并尝试赋值给变量,可能会遇到返回 `null` 的情况。这通常发生在以下几个方面:
1. **缺少构造函数体**:如果你忘记提供函数体,`Function` 构造函数会返回 `undefined` 而不是 `null`,但如果没有明确的目的,这样做通常是无意义的。
```javascript
let func = new Function(); // 这里func实际上是undefined
```
2. **错误的参数**:`Function` 接受两个参数,第一个是字符串形式的函数体,第二个是上下文对象。如果你传入了错误的参数,它也不会返回 `null`,但可能导致错误。
```javascript
let func = new Function(''); // 如果没有函数体,也不会返回 null
```
3. **在严格模式下**:在严格模式 (`'use strict';`) 下,`Function` 构造函数的行为会受到限制,但它仍然不会直接返回 `null`。
4. **在特定的上下文中**:除非你显式地将结果赋值给某个变量,否则 `new Function()` 创建的对象通常不会立即可见,因此你看到 `null` 可能是因为找不到它的引用。
如果你想要测试 `new Function()` 是否成功,可以确保提供了一个有效的函数体,并检查 `func.toString()` 或者在适当的地方捕获并打印函数实例。
阅读全文