我想在第一次调用$ sudo apt-get install php5-mysqlnd
函数时运行这行代码,然后在第二次函数运行时运行它不应该运行
this.totalVote = this.totalVote - 1;
答案 0 :(得分:0)
设置一个全局变量来控制是否运行该行:
var downvoted = false;
downVote(eve){
if(downvoted === false) {
this.totalVote = this.totalVote - 1;
downvoted = true;
}
if(this.ristricted === this.totalVote){
this.totalVote = this.totalVote - 1;
}else {
}
}
答案 1 :(得分:0)
如果您希望函数保留某个状态(例如calledBefore
或callCount
属性),您只需向函数本身添加一个属性:
function downVote(eve){
if (!downVote.calledBefore) {
downVote.calledBefore = true;
// do one-time only stuff here:
this.totalVote = this.totalVote - 1;
}
// do other stuff here:
if(this.ristricted === this.totalVote){
this.totalVote = this.totalVote - 1;
}
}
或者你可以将函数包装在一个闭包中以私有地保存状态:
var downVote = (function (){
var calledBefore = false;
return function downVote(eve) {
if (!calledBefore) {
calledBefore = true;
// do one-time only stuff here:
this.totalVote = this.totalVote - 1;
}
// do other stuff here:
if(this.ristricted === this.totalVote){
this.totalVote = this.totalVote - 1;
}
}
})();
后者的演示:
var downVote = (function (){
var calledBefore = false;
return function downVote(eve) {
if (!calledBefore) {
calledBefore = true;
// do one-time only stuff here:
console.log("First call");
}
// do other stuff here:
console.log("Called");
}
})();
downVote();
downVote();
downVote();

答案 2 :(得分:0)
我想你可以添加另一个变量来跟踪函数是否被调用?
this.downVoteCalled = false;
downVote(eve){
if(!this.downVoteCalled){
this.totalVote = this.totalVote - 1;
this.downVoteCalled = true;
}
if(this.ristricted === this.totalVote){
this.totalVote = this.totalVote - 1;
}else {
}
}