我正在尝试创建一个函数REPEAT,而不是。这是我的代码:
handleClick = (e) => {
console.log(this);
}
效果很好。
但是:
function REPETER(nb) {
return {
INSTRUCTIONS: function(callback) {
for(i_repeter=1;i_repeter<=nb;i_repeter++) callback();
return this ;
}
};
}
var x = 1 ;
REPETER(5)
.INSTRUCTIONS (() => {
xxx = xxx + 2 ;
alert(i_repeter);
}
);
不起作用,第一个REPETER什么都不做。
我该如何解决这个问题?
谢谢!
答案 0 :(得分:0)
您需要在i_repeter
函数中声明INSTRUCTIONS
。因为您没有声明它,所以您正在创建一个隐式全局。 Globals是一件坏事,隐含的是双倍的。由于你有一个转发器呼叫中继器,你最终会产生串扰;第一个人认为它已经完成了。
所以:
function REPETER(nb) {
return {
INSTRUCTIONS: function(callback) {
var i_repeter; // <=== Change is here
for (i_repeter = 1; i_repeter <= nb; i_repeter++) callback();
return this;
}
};
}
另请勿尝试在更新i_repeter
的函数中使用xxx
(并确保声明xxx
)。