javascript jquery : Overwriting variables - how? 性能更好?

标签 javascript jquery performance variables

嘿伙计们, 我不是一个铁杆编码员,所以我在这里不了解这些基础知识。

假设我的页面上有多个 '(包含通过 swfobject 的 Youtube 视频)。 所有这些对象都有一个唯一的 ID,如 ytplayer_12、ytplayer_2、ytplayer_56 等。

我需要使用 jquery 运行所有 ytplayer_ 并向它们添加一个 EventListener。

效果很好!我只是想知道我是否在正确的位置声明了变量 ($ytid, ytid) - 在 onYouTubePlayerReady() 函数之外?或者我应该在函数内部声明变量?或者甚至在每个循环内部?

var $ytid = '',
    ytid = '';

function onYouTubePlayerReady() {

    $('object[id^="ytplayer_"]').each(function() {

        $ytid = $(this).attr('id');
        ytid = document.getElementById($ytid);

        ytid.addEventListener("onStateChange", "foo");

    });
};

我只是好奇在这种情况下什么更好,以及我现在做的是否正确? 感谢您提供的信息和帮助?

最佳答案

在全局范围内声明变量是个坏主意。将它们移动到函数作用域中。

function onYouTubePlayerReady() {
    var $ytid = '', ytid = '';
    $('object[id^="ytplayer_"]').each(function() {
        $ytid = $(this).attr('id');
        ytid = document.getElementById($ytid);

        ytid.addEventListener("onStateChange", "foo");
    });
};

你可以摆脱它们:

function onYouTubePlayerReady() {
    $('object[id^="ytplayer_"]').each(function() {
        this.addEventListener("onStateChange", "foo");
    });
};

关于javascript jquery : Overwriting variables - how? 性能更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5027924/

相关文章:

c++ - 在 C++ 中使用 std::vector 的性能损失是什么?

performance - 如何防止 HTML5 音频在加载时预下载/流式传输?

javascript - 在javascript中按字母顺序对对象数组进行排序

javascript - 显示内容。主屏幕上内容的底部

linux - Bash 脚本在进入 docker 容器时退出

javascript - (响应)在 javascript 中将宽度单位从 px 更改为 %

jquery - 页脚动画和 jQuery?

javascript - 函数无法识别

Javascript 图像 onclick

javascript - 在每个循环中应用 jQuery 插件是否比以传统方式应用它的性能更差?