为什么这个对象方法不返回布尔值Javascript

Why won't this object method return a boolean value Javascript

本文关键字:返回 布尔值 Javascript 方法 对象 为什么      更新时间:2023-09-26

我的应用程序的js文件包含以下内容:

var drawer = document.getElementById('b_001');
drawer.isOpen = function() {
  this.classList.contains('open');
};

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

你需要

一个返回语句

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

你必须返回它:

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

如果函数不返回任何内容,则返回值被视为undefined,如以下代码片段所示:

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;
}
<div id="result"></div>