Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么JavaScript属性不自动更新?

为什么JavaScript属性不自动更新?
EN

Stack Overflow用户
提问于 2021-10-26 17:39:51
回答 1查看 34关注 0票数 0

我有一个对象,其属性存储checkbox的checked属性,如下所示:

代码语言:javascript
运行
AI代码解释
复制
var x = {
  isChecked: document.querySelector("input").checked
};


function getX() {
  (x.isChecked ? console.log("checkbox is checked") : console.log("checkbox is not checked"));
}
代码语言:javascript
运行
AI代码解释
复制
<input type="checkbox">
<button onclick="getX()">is the checkbox checked?</button>

选中和取消选中该复选框时,isChecked属性的值不会更新。为什么会这样呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-26 17:43:26

因为.checked是一个布尔值,而不是一个对象,所以当您说isChecked: document.querySelector("input").checked时,您只是将isChecked设置为element.checked的当前值。使isChecked成为一个函数,以便在每次需要时获取实际值。

代码语言:javascript
运行
AI代码解释
复制
var x = {
  isChecked: () => document.querySelector("input").checked
};


function getX() {
  (x.isChecked() ? console.log("checkbox is checked") : console.log("checkbox is not checked"));
}
代码语言:javascript
运行
AI代码解释
复制
<input type="checkbox">
<button onclick="getX()">is the checkbox checked?</button>

或者,如果您希望继续在isChecked而不是isChecked()中使用它,并且希望能够使用该变量手动设置它,则可以像这样使用getters和setters:

代码语言:javascript
运行
AI代码解释
复制
var x = {
  get isChecked() {
    return document.querySelector("input").checked;
  },
  
  set isChecked(checked) {
    return document.querySelector("input").checked = checked;
  }
};


function getX() {
  (x.isChecked ? console.log("checkbox is checked") : console.log("checkbox is not checked"));
}
代码语言:javascript
运行
AI代码解释
复制
<input type="checkbox">
<button onclick="getX()">is the checkbox checked?</button>
<button onclick="x.isChecked = false">uncheck</button>
<button onclick="x.isChecked = true">check</button>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69731772

复制
相关文章

相似问题

添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档