我是一个相对的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);
传递它?
答案 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
构造函数接受一个参数,然后将其保存在this
(this.year = year
之前的空对象上被执行)。然后,由于isLeap()
实例调用了Year
方法(也就是具有year
属性的对象),isLeap()
方法将能够访问year
方法this.year
1}}属性通过gdrive upload ./2016-12-25.tar.gz
。