javascript - 箭头语法和函数语法真的一样吗?(无法读取未定义的属性“createDocumentFragment”)
问题描述
所以我的代码发生了一件非常有趣的事情。使用箭头语法声明我的函数时,出现错误。但是当我使用旧的 function() 语法时没有错误。
const clean = (blurb) => {
blurb.find('a').each(()=> { $(this).replaceWith($(this).html()) });
}
(无法读取未定义的属性“createDocumentFragment”)
^^^^错误^^^^
相对
const clean = (blurb) => {
blurb.find('a').each(function() { $(this).replaceWith($(this).html()) });
}
^^^^没有错误^^^^
所以 clean 应该只删除“a”标签的所有实例,但这仅在我使用旧方法时才有效?知道为什么会这样吗?
谢谢
解决方案
箭头函数没有自己的this
,就像常规函数一样,这可能是您出错的原因。
更多信息:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions
推荐阅读
- excel - 仍然运行时错误 1004 '无法获取 WorksheetFunction 类的 VLookup 属性
- python - 为 2 个类训练 yolov3-tiny,它会影响权重文件的大小以及推理时间吗?
- lua - 在 lua 中创建一个匹配一个括号和字符串的模式
- numpy - 如何在 Numpy 中找到矩阵的矩阵共同成员
- c++ - reference_wrapper 导致“不允许不完整的类型”
- sql - 基于查询中的一次选择的两次选择
- php - 使用 SQL Server 2019 将 Windows server 2003、php 5.2.6 连接到 Win Server 2019
- android - 为什么计算机对 JDK 不敏感
- discord.js - 试图将 Autorole 添加到我的机器人但得到 TypeError: fn.bind is not a function
- python - python的optparse