修改Date.prototype并将其绑定

时间:2019-02-09 18:00:53

标签: binding prototype

简单的任务和很多问题。

我需要一种简单的方法来显示工作日。 为此,最简单的方法是将Date.prototype修改如下:

if df.index % 100 = 1:
    not sure what to do

我知道,我们通常应该避免修改原型。但是在这种情况下,我认为它不会引起任何问题。我对吗?我可以这样做吗?还是在考虑编码错误?

第二个问题是关于箭头函数this的绑定。 如果我将上述功能修改为这样的箭头功能:

Date.prototype.getWeekDay = function () {
  const weekday = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
  return weekday[this.getDay()];
}

由于this关键字,该功能不再起作用。我知道我必须将此绑定,但是我不知道该怎么做。我应该如何正确绑定呢?

1 个答案:

答案 0 :(得分:1)

根据ECMAScript 2015规范:

  

任何引用中的参数,super,this或new.target   ArrowFunction必须解析为词法包围中的绑定   环境。通常,这将是   立即封闭功能。

所以基本上您不能重新绑定