Javascript 使用';这';使用集合选择器将函数添加到变量中
比如说,我有一个变量,它被设置为所需的选择器。然后,为了保持代码整洁,我将函数添加到该变量中。那么,在函数中使用链接选择器访问原始变量,以及访问我将来可能使用“this”添加的函数,这是一个好主意吗。如果有更好的方法来完成它,请继续,我想知道Javascript 使用';这';使用集合选择器将函数添加到变量中,javascript,jquery,Javascript,Jquery,比如说,我有一个变量,它被设置为所需的选择器。然后,为了保持代码整洁,我将函数添加到该变量中。那么,在函数中使用链接选择器访问原始变量,以及访问我将来可能使用“this”添加的函数,这是一个好主意吗。如果有更好的方法来完成它,请继续,我想知道 var elementzero = $('.element-class'); elementzero.initialize = function() { // is there possible to access elementzero sel
var elementzero = $('.element-class');
elementzero.initialize = function() {
// is there possible to access elementzero selector by 'this'
$(this).addClass('loaded');
// and call elementzero.someFunction using the same 'this'
this.someFunction();
}
elementzero.someFunction = function() {
console.log('someFunction');
}
elementzero.initialize();
像这样向jQuery对象添加特殊函数可能不是一个好主意。最好将jQuery和层分开 也许您可以这样定义控制器对象:
var elementzero = $('.element-class');
var controller = {
initialize: function() {
elementzero.addClass('loaded');
controller.someFunction();
},
someFunction: function() {
console.log('someFunction');
}
};
controller.initialize();
您可能还需要研究JavaScript框架,以帮助您构建代码。是的,这是可行的。JavaScript通常就是这样工作的。注意,您不需要使用
$(this)
,因为this
已经是jQuery对象。只需使用this
。至少,如果添加jQuery函数,请将其构造为$.fn
对象上的插件…@War10ck使用$.fn
我想避免。@Jonathan.Brink但是,我可以问一下,为什么使用ad-hoc
函数是一个坏主意。@Katherine随着代码库的增长,如果继续在jQuery实例中添加ad-hoc函数,那么可能很难准确地记住jQuery中的内容以及该特定实例的内容。如果您将自己的函数放在一个单独的地方,其他jQuery可以调用这些函数,那么您的代码也将更加可重用instances@Katherine那肯定行。它仍然强烈建议签出一个JavaScript框架来帮助组织代码……这将是未来维护的一个巨大胜利。这里有一个很好的起点来了解外面的情况: