Javascript 我是否需要定义';自我'';元素';在JQuery小部件中每个函数的开始处
我创建了类似这样的JQuery小部件Javascript 我是否需要定义';自我'';元素';在JQuery小部件中每个函数的开始处,javascript,jquery,jquery-ui-widget-factory,jquery-ui-widget,Javascript,Jquery,Jquery Ui Widget Factory,Jquery Ui Widget,我创建了类似这样的JQuery小部件 <script type="text/javascript"> (function ($) { $.widget("cb.bacon", { _create: function() { var self = this, o = self.options, el = self.element;
<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>
(函数($){
$.widget(“cb.bacon”{
_创建:函数(){
var self=这个,
o=自我选择,
el=自我元素;
//一些代码
},
_培根:函数(){
var self=这个,
o=自我选择,
el=自我元素;
//一些代码
},
_smokey:函数(){
var self=这个,
o=自我选择,
el=自我元素;
//一些代码
}
});
})(jQuery);
我总是在我创建的每个函数中声明self
,选项
,元素
我是否缺少一些基本的理解,或者我真的必须一直这样做?你根本不需要这样做,那只是为了更容易访问函数中的那些内容 当您在jQuery函数中使用回调时,
self
变量很有用,其中这个
将被设置为您所处理的元素。例如:
$('.bacon').each(function(){ $(this).css('background', self.getBackground()); });
变量
o
和el
只会减少键入。如果变量self
,或引用this
未更改,则可以直接从对象访问选项
和元素
属性。由于使用对象文字,每次都需要声明这些内容。您可以将对象文本包装为函数调用,并通过这种方式实现所需的功能
<script type="text/javascript">
function makeTheBacon() {
var self = this;
var o = self.options;
var el = self.element;
self._create = function() {...};
self._bacon = function() {...};
self._smokey = function() {...};
return self;
}
(function ($) {
$.widget("cb.bacon", makeTheBacon());
})(jQuery);
</script>
函数makeTheBacon(){
var self=这个;
var o=自我选择权;
var el=自我元素;
self.\u create=function(){…};
self._bacon=function(){…};
self.\u smokey=函数(){…};
回归自我;
}
(函数($){
$.widget(“cb.bacon”,makeTheBacon());
})(jQuery);
还有一个问题也涉及到这一点,即在对象文本中使用函数,但考虑到您最初的问题,这似乎过于冗长