【问题标题】:Why won't this object method return a boolean value Javascript为什么这个对象方法不返回布尔值Javascript
【发布时间】:2015-02-15 18:35:58
【问题描述】:

我的应用程序的 js 文件在此处包含此位:

var drawer = document.getElementById('b_001');

drawer.isOpen = function() {
  this.classList.contains('open');
};

当我在控制台中调用它时,drawer.isOpen(),我期望一个布尔值,truefalse。但是,将返回 undefined。这是为什么呢?

【问题讨论】:

    标签: javascript object dom methods this


    【解决方案1】:

    你必须返回它:

    drawer.isOpen = function() {
      return this.classList.contains('open');
    //^ here  
    };
    

    如果一个函数没有返回任何东西,返回值被认为是undefined,就像这个 sn-p 演示的那样:

    var report = document.querySelector('#result');
    
    report.innerHTML += doStuff(5);        // nothing returned
    report.innerHTML += '<br>'+addFive(5); // a result is returned
    
    function doStuff(val) {
      val = val || 0;
      val += 5;
    }
    
    function addFive(val) {
      val = val || 0;
      val += 5;
      return val;
    }
    &lt;div id="result"&gt;&lt;/div&gt;

    【讨论】:

    • 这是第 1 个回答,但它只有 1 个赞成票,但答案有 3 个赞成票,为什么?
    【解决方案2】:

    你需要一个退货声明

     return this.classList.contains('open');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-23
      • 2019-10-04
      • 1970-01-01
      • 1970-01-01
      • 2013-08-10
      • 2020-03-21
      • 1970-01-01
      • 2014-03-20
      相关资源
      最近更新 更多