在 Javascript 闭包中访问“this”

2023-11-24

这更像是一次健全性检查。我发现在 Javascript 中使用闭包时,我经常使用以下模式从函数内访问封闭类:

MyClass.prototype.delayed_foo = function() {
    var self = this;
    setTimeout(function() {
        self.foo(); // Be nice if I could use 'this' here
    }, 1000);
};

显然,这工作得很好,而且使用起来也不是什么大麻烦。我的大脑深处有一种小小的痒感,说“你把事情搞得太复杂了,笨蛋!”这是普遍接受的模式吗?


这是普遍接受的模式,除了that经常被用来代替self.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Javascript 闭包中访问“this” 的相关文章

  • 如何在后台加载图像?

    问题 我正在创建一个专辑 所以每次按 时间 下一个 按钮我正在加载新图像 我想要实现的是 只有在新图像从服务器完全下载后 我才想从旧图像切换到新图像 实际上我不想在加载时显示部分图像 有什么解决办法吗 PS 类似的问题 https stac
  • 减少 JavaScript 中的对象数组

    我在 javascript 中有一个想要减少的对象数组 请参阅下面的代码 6 位或以上的消息已验证 较少的消息未验证 我将他们按组分组 const myArray group groupA message Text without a nu
  • JW Player - 视频可以在 Chrome 中播放,不能在 Firefox 或 IE 中播放

    See 工作链接 http www 888behindthescenes com test 在主页上我有两个视频 intro video 和 video container 在 chrome 下我没有问题 但在 firefox 和 IE 中
  • 使用 vue.js 显示 json 结果

    您好 我尝试使用 vue js 显示 json 文件结果 目标是结果将显示在值上 这是我的代码 data return fetchData function var self this self http get api casetotal
  • 使用 JS 和 HTML 将当前 URL 插入链接

    所以 我已经阅读了类似的内容 但我仍然找不到更适合我正在做的事情的答案 我正在尝试使用 JS 获取当前页面 URL 并将其附加到社交媒体共享链接 如下所示 a href target blank 使用 Javascript 我成功地将当前
  • 当列表包含图像时,React Native FlatList 感觉很慢

    我为 avater 使用 64x64 图像 它的尺寸非常小 通过我的应用程序 滚动时帧率下降至 25 35 fps 如何优化 flatList 图像
  • Mocha / Chai Expect.to.throw 未捕获抛出的错误

    我在获取 Chai 时遇到问题expect to throw测试我的 node js 应用程序 测试在抛出的错误上不断失败 但是如果我将测试用例包装在 try 和 catch 中 并对捕获的错误进行断言 它就会起作用 Does expect
  • 如何从回调函数中获取值

    我对 javascript 比较陌生 并且面临一些困难 我有两个 java 脚本文件 如下所示 我无法获取变量的值条目标题在 getRss 函数内并将其存储在变量内Rss1 标题 and Rss2 标题 创建一个全局变量并将其分配给条目标题
  • 是否可以从“GET”请求中检索 MS/延迟? (Javascript/Jquery)

    我目前正在使用 jquery 发出一些 getjson 请求 他们是获取请求 GET http localhost MySite JSON http localhost MySite JSON 现在您可以在 Firebug 中观看请求的触发
  • Cordova - 已弃用尝试访问非导航器对象上的属性“userAgent”

    我正在尝试让我的 Cordova iPhone 应用程序在 iOS 8 1 中运行 在 7 中工作正常 从 8 开始出现以下错误 Deprecated attempt to access property userAgent on a no
  • 与玻璃钢战斗

    我读过有关 FRP 的内容 非常兴奋 它看起来很棒 因此您可以编写更多高级代码 并且一切都更加可组合 等等 然后我尝试用数百个 sloc 从纯 js 到 Bacon 重写我自己的小游戏 我发现 我实际上不是编写高级纯逻辑代码 而是击败了 B
  • 需要了解Javascript函数提升示例

    我阅读了 Javascript 提升的概念 它非常令人困惑 但我看到了一些示例并了解了提升的实际作用 所以基本上 提升是 JavaScript 的默认行为 即将所有声明移动到当前作用域的顶部 当前脚本或当前函数的顶部 但我无法理解以下实现
  • 如何在 ES6 类中使用静态变量?

    我正在尝试在 es6 中使用静态变量 我想声明一个静态变量count in Animal类并增加它 但是 我无法通过声明静态变量static count 0 所以我尝试了另一种方法 class Animal constructor this
  • 如何使用 jQuery AJAX 和 JSON 通过 Bootbox 确认表单提交

    我正在使用一个网络应用程序工作Spring MVC 我试图在提交表单之前显示一个确认对话框Bootbox 但我收到 500 内部服务器错误 这是我的表格
  • ajax - 检查用户名是否存在+如果存在则返回消息

    我试图检查用户想要的用户名是否已被使用 而无需发送表单 基本上是用户名字段的模糊 我遇到了一些麻烦 有几个问题 我有我的输入字段加上js
  • 同步通用分析

    新的Universal Analytics重新引入了同步事件跟踪 https developers google com analytics devguides collection analyticsjs method reference
  • 是否可以阻止在每个 HTTP 请求中发送 cookie?

    我最近发现 这里 每个网络请求都会发送浏览器cookie吗 https stackoverflow com questions 1336126 does every web request send the browser cookies
  • Ruby 数组到 Javascript 数组

    我有一个带有帐户 ID 的 Ruby 数组 我想将帐户 ID 的 Ruby 数组存储在 Javascript 数组中 我想知道最好的方法是什么 另外 当我尝试执行此操作时 Javascript 似乎认为如果只输入一个帐户 ID 则该 ID
  • CasperJS:如何单击所有选定的按钮?

    我正在尝试使用 CasperJS 作为网络抓取工具 并且有一个带有按钮的页面 单击该按钮将加载数据 因此 我想先单击所有这些按钮 然后等待 然后再实际进行查询以获取所有必要的数据 问题是对于 Casper casper thenClick
  • 如何通过 jQuery onblur 提交表单

    所以我尝试通过 jQuery onblur 提交表单 即一旦焦点离开密码字段 表单就会通过 jQuery 提交 有类似的问题 但这不是我要找的 我尝试使用 document getElementById 但它不起作用 任何帮助表示赞赏 提前

随机推荐

  • 通过电子邮件发送 Gitlab-CI 工件

    我们的 Gitlab 管道生成一些性能图表 我希望通过电子邮件将其发送给每个团队成员 到目前为止 它们被标记为工件 因此 Gitlab 保留它们 Gitlab 有什么办法可以实现这一点吗 或者我应该在工作脚本中执行此操作 目前无法从 git
  • Linux中这个$PATH是什么以及如何修改

    我对 Linux 中的 PATH 有几个问题 我知道它告诉 shell 在哪些目录中搜索可执行文件 所以 环境变量是什么意思 如何改变它的路径 是否建议更改 如果我改变它会有什么后果 让你的路径成为当前路径 PATH变量类型为 echo P
  • 为什么 numpy.random 和 multiprocessing 不能很好地发挥作用? [复制]

    这个问题在这里已经有答案了 我有一个随机游走函数 它使用numpy random执行随机步骤 功能walk本身就可以正常工作 同时 它在大多数情况下按预期工作 但是与multiprocessing 它失败 为什么multiprocessin
  • 如何在 SAPUI5 XML 视图中使用 if-else 条件?

    如何在 SAPUI5 的 XML 视图中实现 if else 条件 该条件使用来自JSONModel 到目前为止我有一个控制器 sap ui define sap ui core mvc Controller sap ui model js
  • 之前有效的 Microsoft Graph 请求出现 InefficientFilter 错误

    向 MS Graph 发出以下请求以检索按到期日期排序的标记消息 https graph microsoft com beta me messages filter flag flagStatus 20eq 20 27flagged 27
  • 串行数据的二进制通信协议解析器设计

    我正在重新审视字节流 串行数据 一次接收 1 个字节 的通信协议解析器设计 数据包结构 无法更改 为 Start Delimiter 1 byte Message ID 1 byte Length 1 byte Payload n byte
  • 在 Mac OS X 上测试 IE6

    我希望能够在 Mac OS X 上全面测试我的网页的兼容性 我已经安装了 Parallels Desktop 它工作正常 但它使用大量资源 所以我希望能够测试 OS X 内的所有内容 事实上 我正在寻找适用于 Mac 的 Explorer
  • 有条件地在 Android 清单文件中包含元数据

    有没有办法有条件地包含meta dataAndroid 清单文件中的元素基于 Gradle 中设置的值 我能够执行以下操作 使用resValue to set
  • 如何将变量从 Python 传递到 VBA Sub

    我试图从我的 Python 代码调用 VBA 子程序 将指定文件夹中的所有 excel 文件从 xls 转换为 xlsm 格式 当我不在 VBA 中使用变量时 我可以使用以下代码 并且效果很好 Python代码 import os impo
  • OSX 上的 Mono:找不到 gtksharpglue-2.dll

    我正在尝试在 C 中完成我的第一步 并希望构建一个空的 GTK 窗口作为我的第一个任务 通过macports我安装了以下软件包 电子邮件受保护 电子邮件受保护 电子邮件受保护 我还使用 Mono 主页上的 MonoDevelop I add
  • “CSS 256 类覆盖一个 ID”背后的规则是什么?

    我最近也遇到过这种情况 但找不到 为什么 谁能解释一下吗 请参阅下面的示例 http codepen io chriscoyier pen lzjqh 发生这种情况是由于浏览器限制 而不是规范或浏览器实现方式中的错误 The spec sa
  • 单击标签时 jQuery Click 会触发两次

    我正在使用 jQuery 创建自定义单选按钮 但遇到了问题 当单击与无线电关联的标签时 单击事件会触发两次 如果我仅单击无线电本身 它工作正常 实际上 我单击的不是无线电 而是包装整个输入和标签的 div 这是代码 HTML div div
  • 如何在vtk中以不同的颜色显示点云?

    我有一个点云 我想在 vtk 中可视化 我想根据某些条件看到它们具有不同的颜色 我正在使用Python 关于如何做到这一点有什么建议吗 多谢 下面是一个根据 z 轴值设置点颜色的示例 import vtk from numpy import
  • 测试与非测试中的 Swift 和 CoreData Casting 问题

    我在 Xcode 6 上使用 SwiftCoreData 我已阅读发行说明并看到了这个issue关于确保使用模块名称 应用程序名称 标记核心数据模型 以便您可以投射NSManagedObject运行时的模型类型 当我这样做时 我可以让应用程
  • 在 Python 中使用 FlexMock 模拟函数?

    我知道如何使用 flexmock 在 Python 中模拟方法 例如 flexmock subprocess should receive call replace with my func 一个模拟如何在对象之外发挥作用 或者例如glob
  • 将 C++ 成员函数指针传递给 STL 算法

    我有一个成员函数如下 class XYZ public float function float x private float m DensityMin float m DensityMax 现在 我正在努力改变一个std vector
  • Linux Open Suse“pyodbc.Error: ('01000',“[01000] [unixODBC][驱动程序管理器]无法打开 lib 'SQL Server': 文件未找到 (0) (SQLDriverConnect)")"

    我知道以前有人问过这个问题 但我从未真正得到可以解决我的问题的正确答案 我正在尝试从 Linux Open Suse12 4 计算机连接到 Windows 计算机上的 SQL 服务器 pyodbc connect DRIVER SQL Se
  • 如何在 mongoDB 中编写联合查询

    是否可以使用类似于 SQL 查询的 2 个或更多集合在 Mongo DB 中编写联合查询 我正在使用 spring mongo 模板 在我的用例中 我需要根据某些条件从 3 4 个集合中获取数据 我们可以通过一次操作实现这一目标吗 例如 我
  • IIS8.5自动更改物理路径属性

    我在 IIS8 5 中的默认网站下添加了几个应用程序 仅端口 80 IP 上的 http 它们指向不同的物理路径 不是嵌套的 并且在添加此类应用程序后效果很好 但过了一会儿 其中一个应用程序的物理路径会自动更改为另一个应用程序的物理路径 为
  • 在 Javascript 闭包中访问“this”

    这更像是一次健全性检查 我发现在 Javascript 中使用闭包时 我经常使用以下模式从函数内访问封闭类 MyClass prototype delayed foo function var self this setTimeout fu