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

时间:2014-12-17 09:04:55

标签: javascript object dom methods this

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

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

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

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

2 个答案:

答案 0 :(得分:3)

你需要一份退货声明

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

答案 1 :(得分:2)

你必须返回

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>