将数据传递到函数表达式
Passing data into a function expression
我是一个相对的 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
上(这是 [=14 之前的空对象) =] 被执行)。然后,由于 isLeap()
方法被 Year
的实例调用(又名具有 year
属性 的对象),isLeap()
方法将能够通过 this.year
.
访问 year
属性
我是一个相对的 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
上(这是 [=14 之前的空对象) =] 被执行)。然后,由于 isLeap()
方法被 Year
的实例调用(又名具有 year
属性 的对象),isLeap()
方法将能够通过 this.year
.
year
属性