gpt4 book ai didi

javascript - 更高效地编写 JQuery 函数

转载 作者:行者123 更新时间:2023-11-28 13:22:19 25 4
gpt4 key购买 nike

我有一些代码运行得很好,但我觉得它可以写得更好。

$mainTabs.click(function() {
$('video')[0].pause();
$('video')[0].currentTime = 0;
});

我可以重写这个,让它在一行而不是两行吗?我尝试了下面的代码,但收到以下错误“Uncaught TypeError:无法设置未定义的属性'currentTime'”。视频仍然暂停,但没有像应有的那样倒带。我是否做错了什么,或者我的第一次尝试是否有效?我想我可以将 $('video') 保存在变量中,但希望无论如何只需要使用该选择器一次。

$mainTabs.click(function() {
$('video')[0].pause().currentTime = 0;
});

最佳答案

只有设计为链式的方法才能以链式方式使用:方法本身返回“this”或合适的链式对象。

在这种情况下,pause() 并未设计为可链接的,并且不会返回任何内容(结果是方法调用表达式产生未定义的值)。

要“更有效”地编写它 - 主要是减少重复 - 考虑使用局部变量。

$mainTabs.click(function() {
var video = $('video')[0];
video.pause();
video.currentTime = 0;
});
<小时/>

虽然有时局部变量可能由于避免重新计算表达式而产生“性能”差异,但在这种情况下,不会有实际性能差异是因为评估相对较快且很少进行。在这种情况下,使用局部变量可以更清楚地表达意图。

关于javascript - 更高效地编写 JQuery 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32127658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com