JavaScript 中的“可绑定”变量?

2024-03-21

从我对 Flex 的一点经验中,我了解了可绑定变量,例如,文本元素的内容会随着变量的值而变化。

我想知道是否可以在 JavaScript 中做这样的事情。例如,假设我有一个<h1 id="big_title">我想包含文档的标题。这可以很容易地完成document.getElementById('big_title').innerHTML = document.title;,但是如果document.title变化?我必须手动更新big_title以及。

另一种说法是,有没有办法创建自定义onchange- 类似于变量而不是 DOM 元素上的事件处理程序?该处理程序可以根据需要更新标题。

编辑:我知道我可以使用setInterval检查变量“绑定”(在数组中定义)并根据需要进行更新,但这有点黑客行为,并且需要在响应能力和对性能的影响之间进行折衷。


您可以在大多数主要浏览器中“观看”对象。Here https://stackoverflow.com/questions/1759987/detect-variable-change-in-javascript是一个垫片。这个想法本质上是有一个设置器(在该示例中,它是名为handler)当值改变时将被执行。我不确定浏览器支持的程度。

尽管说实话,拥有自己的 setter 方法听起来像是一个更简单的解决方案。要么将其变成一个对象(您可以轻松扩展此示例以使用通用的handler而不是总是更改标题):

function Watchable(val) { // non-prototypal modelling to ensure privacy
   this.set = function(v){
      document.title=val=v;
   };
   this.get = function(){return val;};
   this.set(val);
}

var title = new Watchable("original title");

title.get(); // "original title"
title.set("second title"); // "second title"
title.get(); // "second title"

或者,如果您不需要多次实例化,则可以使用简单的函数+约定:

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

JavaScript 中的“可绑定”变量? 的相关文章

随机推荐

  • C++、多态性和迭代器

    我想要一个存储接口 抽象类 和一组存储实现 SQLite MySQL Memcached 用于存储已知类的对象并从存储中检索子集 对我来说 清晰的界面是 class Storable int id blah blah blah string
  • JSP/GlassFish:如何正确设置 UTF-8 编码

    我正在寻求帮助 将堆栈中的所有层都转换为 UTF 8 编码 我发现这篇好文章 http www javapractices com topic TopicAction do Id 206 http www javapractices com
  • AWS - 错误 504 - 网关超时 - Flask 应用程序

    昨天 我在 Amazon Elastic Beanstalk 上部署了我的第一个 Flask 应用程序 应用程序正在运行 但当我按下启动抓取过程的按钮时出现问题 这个过程相当长 可能需要大约 3 4 分钟 显然在我按下按钮一分钟后 我收到了
  • 在 Microsoft SQL Server 中从十六进制文字插入 varbinary 值

    我有一个 SpringBoot 应用程序 我使用 jdbcTemplate 将一行插入到 mssql int numOfRowsAffected remoteJdbcTemplate update insert into dbo ELCOR
  • Python - 用 ASCII 字符替换 unicode 表情符号

    我当前的周末项目之一有问题 我正在编写一个 Python 脚本 它从不同来源获取一些数据 然后将所有内容输出到 esc pos 打印机 正如您可能想象的那样 POS 打印机并不完全喜欢表情符号 所以文本如下 可爱 给我这个字符串 u53ef
  • 如何在带有配置文件的 Powershell 脚本中使用自定义 WCF 代理?

    我在它自己的程序集中有一个手写的 WCF 代理 它非常简单 public class MyServiceClient ClientBase
  • 通过shields.io徽章添加SonarQube覆盖范围

    我有 com github xxxxxx xxxxxx Maven 存储库 我想添加盾牌徽章 但我有一个无效徽章 https img shields io sonar https sonarqube com com github norau
  • GMAIL SMTP:对 SSPI 的调用失败异常 - 不支持请求的功能

    我正在使用 gmail smtp 发送邮件 主机 smtp gmail com 端口 587 在 MVC 应用程序中使用 gmail smtp 发送邮件时出现异常 以下代码用于发送邮件 public static int SendMail
  • Three.js 的外观似乎被翻转了

    我这里有一个演示 测试场地 http www myuplay com game test html or Backup http direct myuplay com game test html 由于某种原因 即使鼠标矢量是正确的 我的对
  • R - 检测到非树模型!此功能只能与树模型一起使用

    我是 R 新手 当我尝试跑步时xgb importance 我得到这个 Error in xgb model dt tree feature names feature names text text Non tree model dete
  • 当父溢出更改时,firefox 过渡会中断

    我今天遇到一个问题 花了我很长时间来调试 我在网上找不到解决方案 所以我认为记录下来会很有用 如果父级的 溢出 属性与转换一起更改 则转换似乎在 Firefox 上不起作用 即 parent overflow hidden parent h
  • 在 MVC 4 中将对象转换为 JSON

    我正在使用将对象转换为 JSONJavaScriptSerializer我可以在服务器代码中看到这个 JSON 输出 UserId 1 UserName Admin 但在用户界面中它被转换为如下所示 quot UserId quot 1 q
  • 不能在常量列表中使用变量索引

    使用设备建模语言 DML 1 4 版 我创建了一个列表参数 例如 param X 0 0 0 0 0 1 我想在使用变量的方法中访问它们 例如 method get var uint32 idx gt uint32 return X idx
  • 如何通过 ID 以外的方式获取 RESTful 资源?

    在某些情况下 我可能需要通过 ID 以外的参数来查找对象 正确的 RESTful 方法是什么 例如我可能想找到一个User by username and password 所以严格的 RESTful GET users 1 行不通 根据R
  • 加速 WPF 调整大小/重绘

    我注意到即使调整空 WPF 窗口的大小也会显示黑色区域 我桌面上的很多程序都没有这些问题 所以我想知道 有没有办法设置调整大小重绘优先级或其他东西 并加快 WPF 窗口大小的调整速度 或者这个问题是不可避免的 这是 WPF 工作方式的继承
  • Java 加密替代硬编码密钥

    我是加密新手 我查看了 javax crypto 文档并使用此代码对文件进行了加密 File saveFile new File Settings set saveFile delete FileOutputStream fout new
  • 映射 MMIO 区域写回不起作用

    我希望对 PCIe 设备的所有读写请求都由 CPU 缓存进行缓存 然而 它并没有像我预期的那样工作 这些是我对回写 MMIO 区域的假设 对 PCIe 设备的写入仅在缓存回写时发生 TLP 有效负载的大小是缓存块大小 64B 然而 捕获的
  • p2p0是android中WIFI DIRECT的无线接口吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 当我打印 Android 设备中的所有接口时 03 10 19 50 15 484 I System out 22415 lo 03 10
  • PyQt 4 UI 冻结

    下面的程序应该只是累加和 int 并在标签中显示其值 但过了一会儿 GUI 停止工作 而循环继续 from PyQt4 import QtGui QtCore import sys class main window QtGui QWidg
  • JavaScript 中的“可绑定”变量?

    从我对 Flex 的一点经验中 我了解了可绑定变量 例如 文本元素的内容会随着变量的值而变化 我想知道是否可以在 JavaScript 中做这样的事情 例如 假设我有一个 h1 我想包含文档的标题 这可以很容易地完成document get