Kotlin 喜欢 Javascript 中的作用域函数(let、also、apply、run)吗?

2024-03-26

是否可以在 Javascript/Typescript 中创建类似 Kotlin 的作用域函数?有没有图书馆可以做到这一点?

参考:https://kotlinlang.org/docs/reference/scope-functions.html https://kotlinlang.org/docs/reference/scope-functions.html


不,您不能在 JavaScript 或 TypeScript 中执行此操作。但取决于why当你尝试这样做时,解构会有所帮助。

您可以获得的最接近的是使用已弃用的with语句,它将一个对象添加到作用域链的顶部,因此任何独立标识符引用都会根据该对象的属性进行检查:

function example(o) {
    with (o) { // deprecated
        console.log(answer);
    }
}
const obj = {
    answer: 42
};
example(obj); // Outputs 42

有几个问题with不过,这就是为什么它在 JavaScript 的严格变体中是不允许的(这是模块内部的默认设置,class构造,以及在 ES2015+ 中创建的其他新作用域,以及带有以下内容的任何函数或脚本"use strict";在开始时)。

另一个接近的版本是将对象传递给在其参数列表中使用解构的函数:

function example({answer}) {
    console.log(answer);
}
const obj = {
    answer: 42
};
example(obj); // Outputs 42

but一个主要的警告是,您不能以这种方式为属性分配新值(更糟糕的是,如果您尝试 - 例如,使用answer = 67— 它更新参数的值,但不更新对象的属性值)。

为了解决这个问题,您可以在函数内部使用解构,const所以你不会忘记你无法更新该值(或者如果你尝试的话会得到早期错误):

function example(o) {
    const {answer} = o;
    console.log(answer);
    // answer = 67;   // <== Would cause error
    // o.answer = 67; // <== Would work
}
const obj = {
    answer: 42
};
example(obj); // Outputs 42
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kotlin 喜欢 Javascript 中的作用域函数(let、also、apply、run)吗? 的相关文章

  • Javascript 函数指针,以参数作为函数中的参数

    不确定标题的措辞是否正确 或者是否有更好的表达方式 但我认为还可以 无论如何 到目前为止我了解以下内容 a b a b c foo 其中 foo 是在其他地方定义的函数 不接受任何参数 只会导致函数 a b 使用上述参数运行 然后可以在函数
  • Angular2 authguards 执行异步函数失败

    我想通过检查用户是否从服务器登录来保护我的路由 但异步函数不会被执行 这是我的代码 canActivate route ActivatedRouteSnapshot state RouterStateSnapshot Observable
  • 如何限制 Chrome 中的最大文本区域宽度和高度或如何禁用文本区域调整大小

    Chrome 允许通过在右下角添加文本区域来调整文本区域的大小 但有时这种移动可能会破坏页面的设计 所以我想知道如何限制该操作的最大和最小宽度 即如何完全禁用该功能和thml javascript css在页面上 您可以使用 resize
  • 使用ajax发送表单数据

    我想用 ajax 以表单形式发送所有输入 我有一个这样的表单
  • Sequelize 关联 - 请改用 Promise 风格

    我正在尝试将 3 张桌子连接在一起Products Suppliers and Categories然后排SupplierID 13 我读过了如何在sequelize中实现多对多关联 https stackoverflow com a 25
  • 按 Enter 键提交消息?

    我正在开发一个基于本教程使用 Meteor 构建的聊天应用程序 http code tutsplus com tutorials real time messaging for meteor with meteor streams net
  • codePointAt 和 charCodeAt 之间的区别

    有什么区别String prototype codePointAt and String prototype charCodeAt 在 JavaScript 中 A codePointAt 65 A charCodeAt 65 从 MDN
  • 使用 jQuery live() 初始化插件?

    使用 jQuery 在特定类的所有当前和未来元素上自动初始化插件的最佳方法是什么 例如 假设我想要全部
  • Jquery:排除元素

    我有以下代码 document ready function a rel each function this qtip content text img class middle src i icon processing gif alt
  • 如何使用 JavaScript 压缩文件?

    有没有办法使用 JavaScript 来压缩文件 例如 在雅虎邮件中 当您选择下载电子邮件中的所有附件时 它会被压缩并下载到单个 zip 文件中 JavaScript 能够做到这一点吗 如果是这样 请提供一个编码示例 我发现这个图书馆叫js
  • 当系列没有相同的时间值时,如何在工具提示中显示所有系列

    我有一个显示多个时间序列的图表 不同时间序列不会同时采样 有没有办法在工具提示中显示所有系列 在示例中 您可以看到所有系列都包含在前 2 个点的工具提示中 因为它们是同时采样的 其余点仅包含 1 个系列 var myChart echart
  • 全日历与 UTC 和本地日期的混淆

    我确实让 fullcalendar 正常初始化 所以它代表当前日期 午夜 gt 午夜 1 天 1 小时时段 我从其他一些数据源获取带有时间戳的数据 格式为 YYYY MM DD HH mm 作为字符串传输 无时区信息 因此 我将该字符串转换
  • FileReader 在 Ionic 2 中未触发 onloadend

    我正在尝试使用 cordova file plugin 读取本地文件 目前我可以读取本地目录的内容并选择单个文件 但我在获取文件内容时遇到问题 这是我的函数 从列表中选择文件后单击按钮即可调用该函数 import window resolv
  • 如何在没有 jQuery 或延迟加载的情况下推迟背景图像

    根据帕特里克 塞克斯顿tutorial https varvy com pagespeed defer images html 我想以与这里相同的方式推迟背景图像img img src data image png base64 R0lGO
  • JavaScript 中的安全数据

    我必须为 Web 测试创建生成器 使用 HTML 和 JavaScript 测试必须离线和在线进行 正确答案和分数评估必须是生成的测试的一部分 最终用户的分数仅发送到服务器 无法在服务器上进行评估 并且服务器对问题一无所知 它只保存最终分数
  • 如何从 Visual Studio Code API 打开浏览器

    我只是在探索一种从用于开发扩展的 Visual Studio Code API 打开默认浏览器的方法 以下是我的代码 var disposable vscode commands registerCommand extension brow
  • 在请求标头中设置 Cookie Angular2

    我是 angular2 的新手 我的服务器 spring 在其响应标头中使用 set cookie 值来响应身份验证 如何将该 cookie 设置为下一次 API 调用的请求标头 我搜索了很多 但找不到合适的解决方案 作为http get
  • JS - 如何将图像对象变成灰度并显示它

    基本上 当单击按钮时 它会告诉移动设备转到相机 一旦相机拍照 它就会给我图像数据 它被称为数据 URL 吗 这是我处理它的代码 var imagesrc data image jpeg base64 imageData var myimag
  • 从 node.js 创建对 AWS ES 实例的有效签名请求

    我试图找到一个示例 说明如何连接到 Node js 中的 AWS ES 实例 然后通过一个简单的请求访问 ES 集群 我正在尝试使用elasticsearch节点包 https www npmjs com package elasticse
  • 调用一个从 AngularJS 表达式本地计算值的函数是不是很糟糕?

    我读了关于使用范围的一些 AngularJS 陷阱的文章 http thenittygritty co angularjs pitfalls using scopes 并且它指出您不应在表达式中使用函数 并且我知道每次框架认为需要时都可能会

随机推荐

  • 如何额外保护已使用 OAuth 2.0 访问令牌的 REST 服务?

    我有以下 REST 服务 An 聚合器暴露于外界的服务 它由用户 OAuth 2 0 访问令牌保护 这聚合器称为Internal服务 The Internal服务是在网络级别的not暴露于外界 它还由同一用户 OAuth 2 0 访问令牌保
  • 如何在 Delphi 中检测等宽字体?

    如何在 Delphi 中检测等宽字体 TFont Pitch应该fpFixed我想 但它对我来说不适用于 Delphi XE4 var Font TFont begin Font TFont Create Font Name Courier
  • Android 上的“上下文”是什么?

    在Android编程中 到底什么是Context类以及它的用途是什么 我在开发者网站 https d android com reference android content Context 但我无法清楚地理解它 简单来说 顾名思义 它是
  • Hibernate/JPA DB 架构生成最佳实践

    我只是想听听 Hibernate 专家关于基于 Hibernate JPA 的项目的数据库模式生成最佳实践的意见 尤其 项目刚开始时采用什么策略 是否建议让 Hibernate 在这个阶段自动生成架构 还是从项目的最早阶段手动创建数据库表更
  • 如何限制flatMap的并发数?

    我正在尝试使用 RxJS 编写一个脚本来处理数百个日志文件 每个日志文件大约 1GB 脚本的骨架看起来像 Rx Observable from arrayOfLogFilePath flatMap function logFilePath
  • matlab imagesc 背景颜色

    我正在使用最新版本的 matlab 我正在使用 imagesc 命令和 jet 颜色图绘制矩阵 矩阵的背景值为零 并在图像中绘制为颜色条上最低的颜色 即深蓝色 有没有办法使背景零值绘制为白色 Thanks j jet j 1 1 1 1 c
  • 从 AppDelegate 调用重新加载部分

    我正在构建一个应用程序来跟踪 BLE 设备 并且我有一个委托 在 appDelegate 中 来更新通过蓝牙发现的设备列表 我需要在表视图中显示这些设备 因此当我发现一个设备时 我会调用视图控制器中的一个函数来刷新表视图 如果我从 View
  • 根据文件扩展名打开语句

    我需要处理目录中的两种类型的文件 txt and gz 为此目的有两种类型的公开声明 gz files with gzip open file name rt encoding utf 8 as f line next f while li
  • e2e 测试 Angular UI 网格的规范方法

    故事 最近 我们的 UI 从自定义表格切换为角度 UI 网格 http ui grid info 随着它变得稳定且功能丰富 主 Angular UI 网格页面声称具有 e2e 测试集成 但我们很难让这项工作成功 据我们了解 e2e测试集成
  • 在Python中换行长行[重复]

    这个问题在这里已经有答案了 如何在 Python 中换行而不牺牲缩进 例如 def fun print 0 Here is a really long sentence with 1 format 3 5 假设这超出了建议的 79 个字符限
  • 以编程方式检测硬件呼叫/挂断键的存在

    我的一位客户想要一种返回布尔值的代码方法 如果 Android 手机有硬件红 绿呼叫 挂机键 则为 true 如果没有 则为 false 像这样的东西 public void keyFeedbackFromInput KeyEvent ev
  • 在 Android 中使用 Volley 解析 JSON 数据

    我尝试解析来自 的 JSON 数据https api instagram com v1 media popular client id https api instagram com v1 media popular client id 客
  • 如何挂钩异步 Backbone 事件来显示 HTML

    我想做的是调用数据库 然后以 HTML 形式显示结果 我一切正常 数据从数据库返回得很好 除了我无法弄清楚如何显示数据 我知道fetch 是异步的 但我不确定如何将其连接到我的集合视图中 这是我的骨干 function window App
  • 列出以特定字符开头的文件

    我有一个文件夹 其中包含以下名称的文件 5 45name Rdata and 15 45name Rdata 我只想列出以 5 开头的那些 在上面的示例中这意味着我想排除 15 45name Rdata Using list files p
  • silverlight DataGrid 中的复选框行为异常

    我在用checkbox in an itemtemplate中的列Silverlight 5 数据网格 我面临着一个奇怪的问题 当我选择多个时checkbox然后上下滚动网格 选择会转移到其他checkbox 我在代码中修复了这个问题 我在
  • Flutter/Dart 数量处理能力

    我是 Flutter 的新手 我想做一个输入量大的计算器 考虑每个数字 30 40 位 有人可以帮助我如何做到这一点吗 就像在 android 中我使用 BigDecimal 一样 Flutter 中的替代方案是什么 您可以使用decima
  • 根据传入的字符串设置枚举值

    我有许多需要枚举的设置方法 这些基于传入对象属性 有一种方法可以避免硬编码 10 种不同的 case 语句 而不是编写一堆这样的语句 有没有办法创建可重用的方法 Side class declared as public final enu
  • iOS / FCM - 如何使用有效负载中的图像名称将 XCAsset 文件夹中的图像显示为通知附件?

    我正在为通过 FCM 发送的天气应用程序开发丰富通知 首先 我想通知您 我的通知已通过 APNS 和 FCM 成功发送和接收 我在用Pusher https github com noodlewerk NWPusher and Postma
  • 用 jQuery 动态替换 img src 属性

    我正在尝试使用 jQuery 替换给定源的 img 源 例如 当图像源为 smith gif 时 替换为 johnson gif 如果 williams gif 替换为 Brown gif 等 编辑 图像是从 XML 中按随机顺序检索的 每
  • Kotlin 喜欢 Javascript 中的作用域函数(let、also、apply、run)吗?

    是否可以在 Javascript Typescript 中创建类似 Kotlin 的作用域函数 有没有图书馆可以做到这一点 参考 https kotlinlang org docs reference scope functions htm