将数据传递到函数表达式

时间:2016-12-25 19:41:00

标签: javascript tdd

我是一个相对的JS新手,在询问这个问题时我不确定我是否使用了正确的术语。

我正在进行一些JS编码练习,这个特殊的练习需要一个测试一年是否是闰年的函数。

var Year = function() {};

Year.prototype.isLeap = function(input) {
  if((input % 4 === 0) && (input % 100 !== 0)){
    return true;
  }
};

函数本身对我来说不是问题,它是以特定的方式编写它来传递给定的测试:

describe('Leap year', function() {

  it('is not very common', function() {
    var year = new Year(2015);
    expect(year.isLeap()).toBe(false);
  });

在编写代码时,似乎输入未定义,如何通过调用new Year(2015);传递它?

1 个答案:

答案 0 :(得分:3)

如果您正在寻求使用new Year(2015),那么我建议如下:

var Year = function(year) {
  this.year = year;
};

Year.prototype.isLeap = function() {
  return this.year % 4 === 0 && this.year % 100 !== 0;
};

describe('Leap year', function() {
  it('is not very common', function() {
    var year = new Year(2015);
    expect(year.isLeap()).toBe(false);
  });
});

在这里,我们利用伪经典实例化样式,其中Year构造函数接受一个参数,然后将其保存在thisthis.year = year之前的空对象上被执行)。然后,由于isLeap()实例调用了Year方法(也就是具有year属性的对象),isLeap()方法将能够访问year方法this.year 1}}属性通过gdrive upload ./2016-12-25.tar.gz