这是一个简单的例子,如果有一个函数将被调用来检测设置页面中的变化,如。
hasChanged: function (){
flag = true;
}
但是用户可以不断更改内容并多次调用此函数。最好总是调用它(并再次设置布尔值)而不是
hasChanged: function (){
if(!flag)
flag = true;
}
其他解决方案可能是阻止调用此函数的验证。但无论如何,这将是一种功能和过度杀伤。
这很简单,但我很好奇。 。 。文档,链接,书籍和内容都值得您的回答。
感谢,
答案 0 :(得分:0)
首先,切换全局命名空间或窗口对象中的变量是一种不好的做法,以避免副作用。
所以,而不是
hasChanged: function () {
if (!window.flag) {
window.flag = true
}
}
你应该这样做,
hasChanged: function (flag) {
if (!flag) {
flag = true
}
return flag
}
其次,您可以简化并缩小为:
hasChanged: function (flag) {
return !flag
}
或者,如果您正在使用> ES2016,一行:
hasChanged: (flag) => !flag
这意味着,如果flag为false,它将返回true。