javascript - 我是否需要在 JQuery Widget 中每个函数的开头定义 'self' 、 'element' 等

标签 javascript jquery jquery-ui-widget-factory jquery-ui-widget

我创建类似这样的 JQuery Widgets

<script type="text/javascript">
(function ($) {
        $.widget("cb.bacon", {
            _create: function() {
                var self = this,
                    o = self.options,
                    el = self.element;

                 // Some code

            },

            _bacon: function() {
                var self = this,
                    o = self.options,
                    el = self.element;

                 // Some code
            },

            _smokey: function() {
                var self = this,
                    o = self.options,
                    el = self.element;

                 // Some code
            } 
        });
    })(jQuery);                 
</script>

我最终总是必须在我创建的每个函数中声明 selfoptionselement

我是否缺少一些基本的理解,或者我真的必须一直这样做吗?

最佳答案

您根本不必这样做,这只是为了更容易访问函数内部的内容。

当您在 jQuery 函数中使用回调时,self 变量非常有用,其中 this 将设置为您正在操作的元素。例如:

$('.bacon').each(function(){ $(this).css('background', self.getBackground()); });

变量oel只是减少了输入。如果变量 self 或引用 this 未更改,则可以从以下位置访问 optionselement 属性:直接指向对象。

关于javascript - 我是否需要在 JQuery Widget 中每个函数的开头定义 'self' 、 'element' 等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19842499/

相关文章:

javascript - TinyMCE 剥离 HTML,虽然我已经告诉它不要这样做

javascript - 当我调用 "<element>.click()"时,如何防止触发点击事件?或者有什么更好的方法来解决这个问题?

javascript - jquery 小部件中的对象仅表现为一个实例

javascript - 在 jQuery UI 小部件中作为回调触发

javascript - Electron 预加载函数而不是外部文件?

javascript - 如何使用js或jquery找到整个html中仅可见元素的高度?

javascript - 源 map 资源管理器错误 : Check that you are using the correct source map

javascript - 检查哪些标志是整数的开/关?

javascript - Jquery 验证多个条件

jquery-ui-widget-factory - jQuery UI 小部件工厂 : how to reference widget instance using 'this' inside a options?