__defineGetter__ 的简洁替代品?

2023-11-28

Getter 和 Setter 是 VB.Net 中的一个美妙之处:

Get
    Return width
End Get
Set(ByVal value As Integer)
    width = value
End Set

在 Javascript 中,我们可能会这样做:

function Test() {
    var width = 100;
    this.__defineGetter__("Width", function() {
        return width;
    });
    this.__defineSetter__("Width", function(value){
        width = value;
    });
}

它看起来就像是一盘被库里人洗劫一空的意大利面。我们有哪些更简洁的选择?

Note: The new code should access the value using new Test().Width and not new Test().Width().


使用 ES5,您将能够执行以下操作:

function Test() {
  var a = 1;

  return {
    get A() { return a; },
    set A(v) { a = v; }
  };
}

getter/setter 函数当然可以执行您希望它们执行的任何操作。

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

__defineGetter__ 的简洁替代品? 的相关文章

  • 在 Angular 中使用 Vue 组件

    我有一个用 Vue 构建的项目 我想在 Angular 应用程序中重用 Vue 应用程序中的组件 这样我就不必从头开始重建每个组件 我在medium上看到了这个教程 如何在 Angular 应用程序中使用 Vue 2 0 组件 https
  • angularjs:如何向资源对象添加缓存?

    在 http 中添加缓存非常简单 通过传递cache true http docs angularjs org api ng http https docs angularjs org api ng service 24http有缓存选项
  • 取消html5浏览器中的单图请求

    我正在动态加载 大 图像以绘制到 html5 画布中 如下所示 var t new Image t onload t src http myurl 但每隔一段时间就会想取消图片请求完全地 我想出的唯一方法是设置src to i e t sr
  • Angular 2 链式 Promise 并传递拒绝

    应该是一个简单的问题 但是我找不到有关如何做到这一点的文档 像这样链接一个承诺 Making a promise no problem let promise new Promise resolve reject gt let data d
  • 如何使用 selenium 和 Mocha 获取 xPath() 选择的锚标记的文本

    我已经成功选择了 a 标签 我想显示锚标记的文本 但无法这样做 我正在使用 selenium mocha javascript 和 phantomJS 这是我的脚本 详细 var assert require assert var test
  • jquery 验证错误位置

    这看起来很简单 但我无法弄清楚 我正在使用 jquery 验证插件 我验证所有文件 但我想要的是在输入文本行中显示验证消息警报 例如在电子邮件输入中 请填写电子邮件地址 但现在它出现在所有字段下 在我的html中
  • 如何仅在 NextJS 站点构建期间使用 getInitialProps?

    当使用 NextJS 构建静态站点时 我想要getInitialProps方法仅在构建步骤期间触发 而不是在客户端上触发 在构建步骤中 NextJS 运行getInitialProps 方法 https nextjs org docs fe
  • 即使我可以监视其他方法,也无法监视事件处理程序

    我想使用 Jest Jasmine Enzyme 测试 React 中的事件处理程序 MyComponent js import React from react class MyComponent extends React Compon
  • 如何使用 JavaScript 获取没有 HTML 元素的纯文本?

    我的 HTML 中有 1 按钮和一些文本 如下所示 function get content I don t know how to do in here
  • 通过 node-http-proxy 保留基于 cookie 的会话

    我有一个简单的基于 Express 的 Node js Web 服务器 用于开发 JavaScript 应用程序 我将服务器设置为使用 node http proxy 来代理应用程序向在不同域和端口上运行的 Jetty 服务器发出的 API
  • JavaScript 中数组的 HTML 数据列表值

    我有一个简单的程序 它必须从服务器上的文本文件中获取值 然后将数据列表填充为输入文本字段中的选择 为此 我想要采取的第一步是我想知道如何动态地将 JavaScript 数组用作数据列表选项 我的代码是
  • 未捕获的错误:找不到模块“jquery”

    我在用Electron https github com atom electron制作桌面应用程序 在我的应用程序中 我正在加载一个外部站点 Atom 应用程序之外 可以说http mydummysite index html http
  • 将 javascript 整数转换为字节数组并返回

    function intFromBytes x var val 0 for var i 0 i lt x length i val x i if i lt x length 1 val val lt lt 8 return val func
  • Chartjs刻度标签位置

    尝试让 Y 轴刻度标签看起来像image https i stack imgur com XgoxX png 位于秤顶部且不旋转 缩放选项当前如下所示 scales yAxes id temp scaleLabel display true
  • 当用户单击链接时,如何记录 MixPanel 事件?

    当用户单击某种类型的链接时 我试图在 MixPanel 中记录一个事件 我正在使用 JQuery 不引人注意地完成此操作 据我所知 我需要添加一个回调函数 以便在记录事件后将用户带到 URL 这是我正在使用的代码 不幸的是
  • 如何在jquery中获取保存时间和当前时间的差异?

    我想在 javascript 或 jquery 中获取保存时间和当前时间之间的时差 我节省的时间看起来像Sun Oct 24 15 55 56 GMT 05 30 2010 java中的日期格式代码如下 String newDate 201
  • 如何在 Google 地图 V3 中创建编号地图标记?

    我正在制作一张上面有多个标记的地图 这些标记使用自定义图标 但我还想在顶部添加数字 我已经了解了如何使用旧版本的 API 来实现这一点 我怎样才能在V3中做到这一点 注意 当您将鼠标悬停在标记上时 标题 属性会创建一个工具提示 但我希望即使
  • Jquery - 通过在字符串中构建 id 的 id 获取元素

    我在使用 jquery 元素时遇到问题 我正在 var 中构造名称 例如 var myId myGotId myId attr title changed myId 返回空 我想通过 id 获取我的元素 但动态构建我的 Id 连接字符串 编
  • 如何在 gulp.src 中使用基本正则表达式?

    我正在尝试选择两个文件gulp src highcharts js and highcharts src js 当然 我知道我可以使用数组表达式显式添加这两个表达式 但出于学习目的 我尝试为它们编写一个表达式 我读过可以使用简单的正则表达式
  • 单击列表时使用 bootstrap Dropdown 防止下拉菜单消失

    我正在使用使用引导下拉菜单 http twitter github com bootstrap javascript html dropdowns生成下拉菜单 我想防止点击菜单时菜单消失 我已经实现了以下代码 但它不起作用 知道如何修复它吗

随机推荐

  • 同步语句上出现 NullPointerException

    我尝试在下面的代码中同步一个对象 public void myMethod synchronized globalObj Do something here 该代码在一个线程中执行 问题是 另一个线程可能将 globalObj 设置为 nu
  • cmake 不会编译为 C++ 11 标准

    我是 C 新手 一直在编译 制作 链接 构建 其他方面苦苦挣扎 让我们看看是否有人可以帮助我 我做了一些搜索 发现其他人也有类似的问题 但我尝试了他们的解决方案 但没有成功 所以这里是 一个简单的 C 程序 使用 C 11 功能 例如统一初
  • Nhibernate 在使用 QueryOver 时无法解决属性异常,适用于 QueryAll

    我有以下问题基本上我有以下两个片段 var contactAssociation session QueryOver
  • 具有 ManyToOne 关联的实体上的 getArrayResult

    具有以下基本表 一对多关系 客户端 拥有许多用户 用户 每个用户属于单个客户端 在一个非常简单的示例中 如果我查询用户实体 Querybuilder 和getArrayResult 我看到以下内容 实际生成的SQL中包含要修改的外键字段 返
  • 有没有办法用javascript与IP建立tcp连接?

    让我介绍一下我想要完成的任务的背景 我有一个具有本地 IP 地址的设备 芯片和引脚终端 它已被编程为接收某些数据并处理它 示例 我发送字符串 05 in hex 30 35 终端会读取该内容并将重新启动 我尝试过使用SockJS客户端以及内
  • 哪些 Ruby 类支持 .clone?

    Ruby 定义 clone in Object 令我惊讶的是 有些类在调用它时会引发异常 我发现NilClass 真实课堂 假类 Fixnum有这种行为 1 是否存在完整的类列表 至少是核心类 这不允许 clone 或者有没有办法检测特定类
  • 从 Linux 使用 Windows DLL

    我们需要与第三方应用程序接口 但该应用程序背后的公司没有公开消息协议 仅提供 Windows DLL 进行接口 我们的应用程序基于 Linux 因此我无法直接与 DLL 通信 我找不到任何现有的解决方案 所以我正在考虑在 Linux 和 W
  • 有什么方法可以知道 Espresso 活动是否已开始?

    我正在使用 Espresso 进行活动转换测试 但我不知道这是否是最好的方法 public void testStartLogin onView withId R id register perform click onView withI
  • 如何将 Java 异常信息返回到 jQuery.ajax REST 调用?

    我有一些 jQuery 代码 可以对 Java 后端进行 REST 调用 后端函数的处理可能会遇到异常 将此信息返回到 Javascript 的最佳方法是什么 在测试中 我捕获了 Java 中的异常并将 HTTP 状态代码设置为 500 这
  • 无法转换为内部表示

    我正在使用 Broadleaf Commerce 应用程序Oracle Database and Tomcat 6 server 我按照以下步骤操作here我已经做出了改变Persistence admin xml application
  • 如何使用 Java 计算 Selenium WebDriver 中选择下拉框中的选项数量?

    我有选择下拉列表 xpath id ddlTablePay 我需要计算这个下拉列表中的选项数量 谢谢 Use getOptions 方法并将它们存储在一个列表中 然后找到它的大小 Select se new Select driver fi
  • 测试期间未遵循设置的默认语言

    使用Django 1 3 Python 2 6 有一个特别奇怪的问题需要追踪 国际化 以及用于测试的 RequestFactory 与 TestClient 意见 如果我运行 manage py test 所有测试都会运行 包括有问题的测试
  • 无需应用程序商店即可分发 iPad 应用程序

    假设以下场景 A公司要求B公司为他们制作一个iPad App A 公司只想在数量非常有限的 iPad 少于 100 台 上为自己使用 A 公司不一定有兴趣在应用商店上提供它 B 公司如何将应用程序分发 出售 给 A 公司 它可以通过临时配置
  • Meteor 无法启动 - Fibers/futures.js 抛出错误“错误:SQLITE_CORRUPT:数据库磁盘映像格式错误”

    现在 在本地运行时 OSX 中 Meteor CLI 的每个操作都会引发此异常 Users mallorym meteor packages meteor tool 1 1 3 1d614zp os osx x86 64 web brows
  • 在 Ansible 中,如何使用键变量更改现有字典/哈希值

    正如标题所示 我想根据此问题的答案循环遍历现有字典并更改一些值question我想出了下面的代码 但它不起作用 因为第二次调试调用中的值没有变化 我想这是因为在另一个问题中他们正在从头开始创建一个新字典 但我也尝试过它没有外部大括号 我原以
  • 命名联合内的数组元素或结构体和数组

    考虑以下结构 struct Vector4D union double components 4 struct double x y z t Endpoint 在我看来 我在 WinApi 的 IPAddress 结构中看到了类似的东西 这
  • _setmaxstdio 最大打开文件数仅为 2048?

    http msdn microsoft com en us library 6e3b887c VS 80 aspx 有没有办法使用 wopen 每个应用程序一次打开超过 2048 个文件 32 或 64 位操作系统 相同的限制 不 通过查看
  • 使用Python中的内置函数查找3D距离

    我有 6 个列表 存储两组位置的 x y z 坐标 每组 3 个列表 我想计算两组中每个点之间的距离 我已经编写了自己的距离函数 但速度很慢 我的一个列表有大约 100 万个条目 我尝试过 cdist 但它产生一个距离矩阵 我不明白它的含义
  • 将 WPF 应用程序传输到移动 c# [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我只是想知道将我的应用程序转移到移动友好版本的最简单方法 我可以将其放到 Android 手机上 任何帮助和指示将不胜感激 Xamarin 这是最好的方法 将代码保留在 C 中
  • __defineGetter__ 的简洁替代品?

    Getter 和 Setter 是 VB Net 中的一个美妙之处 Get Return width End Get Set ByVal value As Integer width value End Set 在 Javascript 中