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

JavaScript中如何外部访问修改构造函数Modal的实例属性isShown

问题根因

你代码里定义的Modal是构造函数,this.isShown是绑定在构造函数生成的实例对象上的成员属性,不属于构造函数本身的静态属性,所以直接写Modal.isShown = false当然无法访问到目标属性。

正确修改方案

  • 如果你已经生成了Modal的实例
    常规初始化模态框的逻辑类似const myModal = new Modal('#你的模态框元素选择器', {配置项}),直接修改实例的属性即可:
    myModal.isShown = false
    
  • 如果你需要全局修改所有Modal实例的isShown默认值
    因为你无法修改原构造函数的声明,可以通过劫持原构造函数的方式实现:
    // 先保存原构造函数引用
    const OriginalModal = Modal
    // 重写构造函数
    Modal = function (element, options) {
      // 调用原构造函数生成实例
      const instance = new OriginalModal(element, options)
      // 自定义修改isShown的默认值
      instance.isShown = false
      return instance
    }
    // 同步原型链,保证原Modal的所有原型方法可以正常调用
    Modal.prototype = OriginalModal.prototype
    
  • 如果你用的是Bootstrap原生Modal组件(你贴的这段代码就是Bootstrap 3的Modal源码),更推荐用官方提供的公开API控制状态,不要直接修改私有属性:
    要隐藏模态框直接调用$(你模态框的DOM元素).modal('hide'),方法内部会自动把isShown属性更新为false。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 16:36:04