You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript构造函数中toggleBool方法无法切换布尔值求助

问题分析与解决

你的问题出在toggleBool方法里——你只做了布尔值的取反运算,但没有把运算结果赋值回实例的bool属性。

原代码里的this.bool != this.bool只是计算出了当前bool的相反值,但这个结果没有被保存,实例的bool属性自然不会变化。

修正方法很简单,把运算结果赋值给this.bool:

function obj(string1, string2, bool) {
  this.string1 = string1;
  this.string2 = string2;
  this.bool = bool;
  
  this.toggleBool = function() {
    this.bool = !this.bool; // 改为赋值操作,将取反结果存回属性
  }
}

var obj1 = new obj("text", "text", true);

console.log(obj1);
obj1.toggleBool();
console.log(obj1);

这样调用toggleBool时,就会把this.bool的值切换为相反状态,第二次打印时就能看到bool从true变成false了。

补充说明:!this.bool是布尔取反的标准简洁写法,和this.bool != this.bool效果完全一致,但可读性更高。

内容的提问来源于stack exchange,提问作者tnichole15

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 10:35:36