【问题标题】:Object define property: How to set requestAnimationFrame to false?对象定义属性:如何将 requestAnimationFrame 设置为 false?
【发布时间】:2019-03-19 16:24:16
【问题描述】:

如何将requestAnimationFrame 设置为false 条件语句中会测试什么?

Object.defineProperty(window, 'requestAnimationFrame', {
    value: ()=> {}
})


//need to be tested

if ('requestAnimationFrame' in window === false) {
            window.scroll(0, destinationOffsetToScroll)
            if (callback) {
                callback()
            }
            return
        }

【问题讨论】:

  • 你想达到什么目的?您的代码是无效的 javascript(return 在函数体之外)。如果您提供更多背景信息,也许我们可以提供帮助。
  • @NicolasBrugneaux 这个返回是可以的,因为如果if ('requestAnimationFrame' in window === false) 执行然后我停止我的方法工作。这个条件在方法内部起作用
  • 由于您目前正在展示代码,因此语法无效,如果您不按要求提供更多上下文,我们将无法为您提供太多帮助。你能解释一下你的目标是什么吗?为什么要将 window.requestAnimationFrame 设置为 false?
  • @NicolasBrugneaux 因为我需要开玩笑地对此进行测试。然后测试运行,然后像window, document 这样的全局变量应该被模拟以用于测试。因为它不适用于浏览器
  • 有道理。然后请查看我的答案:)

标签: javascript jestjs


【解决方案1】:

正如您在 cmets 中指出的那样,您正在尝试模拟 window.requestanimationframe 行为。我建议看看 https://github.com/alexreardon/raf-stubhttps://github.com/FormidableLabs/mock-raf :)

编辑:

delete window.requestAnimationFrame;
'requestAnimationFrame' in window === false
// true

【讨论】:

  • avoid link only answers。答案“仅是指向外部网站的链接”may be deleted
  • 不,我需要通过Object.defineProperty 执行此操作:)
  • 我想要的只是满足条件if ('requestAnimationFrame' in window === false)
  • 如果有用,为什么你会收到没用的答案? :D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-28
  • 1970-01-01
  • 2018-08-02
  • 1970-01-01
  • 2019-11-21
  • 2014-12-27
  • 1970-01-01
相关资源
最近更新 更多