我需要一些帮助。当我的finishDate设置为无效的Date对象时,除非未定义,否则我需要抛出一个新的TypeError。
当我为DueDate完成此操作时,我写道:

 Object.defineProperty(this, 'dueDate', {
get: function() {
  return _dueDate;
},
set: function(dueDate) {
  if (Object.prototype.toString.call(dueDate) !== "[object Date]") {
    throw new TypeError('invalid date');
  }
  _dueDate = dueDate;
}
});


但是,当我尝试为FinishedDate执行此操作时,由于有时没有FinishedDate,它是未定义的,所以它不起作用?

最佳答案

如果finishedDateundefined,请不要抛出错误:

set: function(finishedDate) {
    if (finishedDate !== undefined && Object.prototype.toString.call(finishedDate) !== "[object Date]") {
// -----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      throw new TypeError('invalid date');
    }
    _finishedDate = finishedDate;
}

10-07 23:55