在节点上的函数内部运行方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在节点上的函数内部运行方法相关的知识,希望对你有一定的参考价值。

我无法理解下面的代码片段是如何工作的。 const video = player.querySelector('。viewer');

function togglePlay() {
    const method = video.paused ? 'play' : 'pause';
    video[method];
}
togglePlay() //starts playing video

我不明白的确切部分是视频[方法],它是如何工作的?我试过谷歌,但到目前为止没有运气。我们只是在视频对象中添加方法吗?如果是这样,为什么我们调用togglePlay()它开始播放视频?!

答案

这种方式的工作方式是访问视频对象的属性。这意味着我们将视频用作数组。如果视频暂停,我们找到播放方法,否则我们找到暂停方法。我们没有创建新方法,我们只是找到对象上已存在的方法。

如果你想,你可以将代码改写成类似的东西

function togglePlay() {
     if(video.paused) {
          video.play() // could also be written as video["play"]()
     } else {
          video.pause() // could also be written as video["pause"]()
     }
}

要使togglePlay方法像您编写的那样工作,您必须将togglePlay函数中的最后一行更改为此。

视频[方法]到视频[方法]();

const video = document.getElementById("video");
function togglePlay() {
    const method = video.paused ? 'play' : 'pause';
    video[method]();
}
<!DOCTYPE html>
<html>
<body>

<video id="video" width="320" height="240" controls>
  <source src="https://www.w3schools.com/html/movie.mp4" type="video/mp4">
  <source src="https://www.w3schools.com/html/movie.ogg" type="video/ogg">
  Your browser does not support the video tag.
</video>
  <button onclick="togglePlay()">toggle play</button>
</body>
</html>

以上是关于在节点上的函数内部运行方法的主要内容,如果未能解决你的问题,请参考以下文章

EasyClick 运行代码片段出Null

EasyClick 运行代码片段出Null

pandas GroupBy上的方法apply:一般性的“拆分-应用-合并”

ForegroundService没有从片段开始?

在ViewPager上,在onPageSelected上的片段上启动动画

echo 在函数内部还是外部?从自身调用函数?