根据函数执行将值设置为true或false

时间:2018-03-02 09:21:16

标签: javascript

我在我的应用程序中对接和取消停靠功能。

当用户取消停靠窗口并重新停靠时,function1function2都将被执行。

如果用户关闭了取消停靠窗口(弹出窗口),则只会执行function2

问题是,如果function1执行,我想将值设置为true。我无法改变功能的顺序。

我该怎么做?请帮忙

function1(){
 this.Watch.setValue(true);
}

function2(){
this.Watch.setValue(false);
}

1 个答案:

答案 0 :(得分:0)

希望这个bind函数可能有所帮助,点击运行查看结果,使用新函数会更新值



const [dock, undock, getValue] = bind(oldDock, oldUndock, false)

console.log(getValue())
dock()
console.log(getValue())
undock()
console.log(getValue())


function bind(toTrue, toFalse, initValue) {
  let val = initValue
  return [
    (...args) => {
      val = true
      toTrue(...args)
    },
    (...args) => {
      val = false
      toFalse(...args)
    },
    () => val,
  ]
}

function oldDock() {
  console.log('dock')
}

function oldUndock() {
  console.log('undock')
}