我是一个相对 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);
传入它?
最佳答案
如果您正在寻求使用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()
方法将能够通过 this.year
访问该 year
属性。
关于javascript - 将数据传递到函数表达式中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41324000/