在下面的代码中,我无法拨打job1
&由job2
返回的jobContainer
。
// Code goes here
var jobContainer = function() {
var count = 0;
var task1 = function() {
count += 1;
console.log("inside task1 " + count);
};
var task2 = function() {
count += 1;
console.log("inside task2 " + count);
};
return {
job1: task1(),
job2: task2()
};
};
var tasker = jobContainer();
tasker.job1 // not working
tasker.job2 // not working
tasker.job2 // not working
输出:
inside task1 1
inside task2 2
谢谢
答案 0 :(得分:2)
返回错误
// Code goes here
var jobContainer = function() {
var count = 0;
var task1 = function() {
count += 1;
console.log("inside task1 " + count);
};
var task2 = function() {
count += 1;
console.log("inside task2 " + count);
};
return {
job1: task1,
job2: task2
};
};
var tasker = jobContainer();
tasker.job1()
tasker.job2()
tasker.job2()
答案 1 :(得分:1)
您的执行返回结果task1
和task2
而不是函数,所以请替换:
return {
job1: task1(),
job2: task2()
};
到
return {
job1: task1,
job2: task2
};
var tasker = jobContainer();
tasker.job1() // inside task1 1
tasker.job2() // inside task2 2
tasker.job2() // inside task2 3
祝你好运!
答案 2 :(得分:1)
return {
job1: task1(),
job2: task2()
};
问题是,如果我理解你正在尝试正确执行的操作,那么在构造返回对象之前,你将调用函数。我猜你的意图是返回函数本身,而不是返回值。
将上述代码更改为(注意未调用函数):
return {
job1: task1,
job2: task2
};
然后将第二位更改为:
var tasker = jobContainer();
tasker.job1()
tasker.job2()
tasker.job2()
注意我们现在正在调用这些函数。