(function(x){ delete x; return x;//1})(1);

本文解析了 JavaScript 中 delete 操作符的正确使用方法,并强调其仅能用于删除对象属性的特点,同时也指出了 delete 不会直接释放内存,而是中断对象引用。

(function(x){ delete x; return x;//1})(1);
delete操作符可以从对象中删除属性,正确用法如下:

delete object.propertydelete object[‘property’]
delete操作符只能作用在对象的属性上,对变量和函数名无效。也就是说delete x是没有意义的。

你最好也知道,delete是不会直接释放内存的,她只是间接的中断对象引用

你提供的这段代码是: ```javascript export function deletelaw(data) { return postRequest('/api/safety/law/delete1law', data); } ``` --- ## ❓ 问题分析 你目前的删除逻辑是通过 `POST` 请求将 `data` 发送到后端接口 `/delete1law`。 ### 但你之前后端接口是这样定义的: ```java public Result delete_is(@RequestParam("row") String row) ``` 这意味着: - 后端使用的是 `@RequestParam`,只能接收表单数据或 URL 查询参数 - 你当前前端使用的是 `POST` 请求,直接传 `data`,但默认是以 `application/json` 格式发送 JSON 数据 --- ## ❌ 导致的问题: > **后端无法正确接收 `row` 参数**,因为 `@RequestParam` 无法解析 JSON 请求体。 --- ## ✅ 正确解决方案 ### ✅ 方法一:修改前端发送方式(推荐) 如果你**不想修改后端代码**,可以将请求参数改为以 `FormData` 或 `URLSearchParams` 的方式发送。 #### ✅ 修改 `deletelaw` 函数如下: ```js export function deletelaw(data) { const params = new URLSearchParams(); params.append('row', data.row); return postRequest('/api/safety/law/delete1law', params, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }); } ``` > 这样就能让后端通过 `@RequestParam("row")` 正确接收到参数。 --- ### ✅ 方法二:修改后端接收方式(更推荐) 如果你可以修改后端代码,建议如下: #### ✅ 修改 Controller: ```java @PostMapping("/delete1law") public Result deleteById(@RequestBody Map<String, String> payload) { String rowId = payload.get("row"); // 你的删除逻辑 return Result.succ("删除成功"); } ``` 或者更清晰: ```java public class DeleteDTO { private String row; // getter/setter } @PostMapping("/delete1law") public Result deleteById(@RequestBody DeleteDTO dto) { String rowId = dto.getRow(); // 你的删除逻辑 return Result.succ("删除成功"); } ``` > ✅ 这样前端就可以继续使用 JSON 格式发送请求,更符合现代前后端分离架构。 --- ## ✅ 补充说明:`postRequest` 是什么? 你这里使用了 `postRequest`,它应该是封装好的 `axios.post` 或类似方法。 你可以这样封装: ```js // utils/request.js import axios from 'axios'; const postRequest = (url, data, config = {}) => { return axios.post(url, data, { ...config, // 可以在这里统一设置 headers }); }; export default postRequest; ``` --- ## ✅ 总结 | 问题 | 原因 | 解决方法 | |------|------|----------| | 删除失败 | 后端用 `@RequestParam` 接收 JSON 请求体 | 前端改为 `x-www-form-urlencoded` | | 参数 `row` 为 null | 后端不能解析 JSON 请求体 | 修改后端为 `@RequestBody` 接收 | | 前端传参方式不规范 | 直接传 `data` 为 JSON | 使用 `URLSearchParams` 或 DTO 接收 | --- ##
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wang_sheng_nan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值